StartSSL的免费证书乃神器。签一下,立即正规多了。虽然一些小地方不支持,但是也无伤大雅。
教程很多很多,简单说:
1.注册(别以为不真实的信息能混过去,没人会拿证书开玩笑的),安装浏览器的证书。这个要备份好,因为不可能恢复。
创建个私钥。
2.创建请求。
OpenSSL必须要有,如果你用LNMP,这个是已经有的。
openssl req -new -newkey rsa:2048 -nodes -out ssl.csr -keyout ssl.key
创建请求。信息要和注册时一样。
cat ssl.csr
这个就是请求了。
3.绑定域名。
有人说需要取消一下Whois保护,其实应该不用。大部分的保护都会转发你的邮件(例如Namecheap的WhoisGuard),这个只需要接一个验证码而已。
4.取证书。Copy出来。
5.准备证书。
这里有个重要提示,如果不这么做,Firefox会报错,很多需要curl的软件不能用。
网上教的办法对,但是有点毛病。
这么做:
openssl rsa -in ssl.key -out ssl2.key
这步解密Key,免得来回输密码。
避免偷窥:
chmod 600 ssl2.key
拽StartSSL的根证书和Class1证书:
wget http://www.startssl.com/certs/ca.pem wget http://www.startssl.com/certs/sub.class1.server.ca.pem
合并:
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,改域名的就行。
加上:
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就基本不怕。
你的东西现在应该畅通无阻了。
能评论吧?