StartSSL的免费证书乃神器。签一下,立即正规多了。虽然一些小地方不支持,但是也无伤大雅。
教程很多很多,简单说:
1.注册(别以为不真实的信息能混过去,没人会拿证书开玩笑的),安装浏览器的证书。这个要备份好,因为不可能恢复。
创建个私钥。
2.创建请求。
OpenSSL必须要有,如果你用LNMP,这个是已经有的。
1 |
openssl req -new -newkey rsa:2048 -nodes -out ssl.csr -keyout ssl.key |
创建请求。信息要和注册时一样。
1 |
cat ssl.csr |
这个就是请求了。
3.绑定域名。
有人说需要取消一下Whois保护,其实应该不用。大部分的保护都会转发你的邮件(例如Namecheap的WhoisGuard),这个只需要接一个验证码而已。
4.取证书。Copy出来。
5.准备证书。
这里有个重要提示,如果不这么做,Firefox会报错,很多需要curl的软件不能用。
网上教的办法对,但是有点毛病。
这么做:
1 |
openssl rsa -in ssl.key -out ssl2.key |
这步解密Key,免得来回输密码。
避免偷窥:
1 |
chmod 600 ssl2.key |
拽StartSSL的根证书和Class1证书:
1 2 |
wget http://www.startssl.com/certs/ca.pem wget http://www.startssl.com/certs/sub.class1.server.ca.pem |
合并:
1 |
cat ssl2.crt sub.class1.server.ca.pem ca.pem > ssl3.crt |
无论你用什么软件,打开看一眼。今天在这个地方浪费了几个小时。
这个文件的格式必须是:
—–BEGIN CERTIFICATE—–
***
—–END CERTIFICATE—–
—–BEGIN CERTIFICATE—–
***
—–END CERTIFICATE——
—–BEGIN CERTIFICATE—–
***
—–END CERTIFICATE——
[warning]—–BEGIN CERTIFICATE—–和—–END CERTIFICATE—–中间必须空行!否则会直接报错![/warning]
6.去Nginx的conf修改。
估计大家都是LNMP,改域名的就行。
加上:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
listen 443; ssl on; ssl_certificate /***.crt; ssl_certificate_key /***.key; include wordpress.conf; location ~ .*\.(php|php5)?$ { try_files $uri =404; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; include fcgi.conf; fastcgi_param HTTPS on; } |
位置可以随便,放在web目录外吧。这样不被getshell就基本不怕。
你的东西现在应该畅通无阻了。
能评论吧?