SSL证书是越来越便宜了。。淘宝上的最便宜的只需要7块钱一年
那还有比这个更便宜的吗,当然有。startssl可以申请一年免费的SSL证书,颁发速度也是很快,信息填写完成立马就能下载到证书文件,免费的当然只能保护一个域名,是不支持泛域名保护的
至于申请证书的教程,网上已经有很多了,虽然页面经过了改版,但过程也没多大变化,发送一封邮件到域名邮箱中,验证域名所有权,之后填写自己的证书信息。最后到Tool Box里面把它签署的证书下载下来,证书的后缀是.crt
我们需要部署在Nginx服务器上的文件主要就两个,一个是自己生成的秘钥,另外一个是startssl颁发给你的证书
将这两个文件放到服务器上你能找到的位置,比如我是放在/usr/local/nginx/conf/ssl里,分别重命名为server.crt和server.key
确保Nginx已经安装了SSL模块
通过/usr/local/nginx/sbin/nginx -V
如果可以看到这条语句则说明已经安装了SSL模块,否则的话就重新去编译安装吧
修改Nginx配置文件nginx.conf (这里server_name以及root根据自己的实际情况填写)
server { listen 443 ssl; server_name xuanyu.li:443; include ssl.conf; root html/wordpress; }之后添加一个ssl.conf文件
ssl on; ssl_certificate /usr/local/nginx/conf/ssl/server.crt; ssl_certificate_key /usr/local/nginx/conf/ssl/server.key;
Then 重启Nginx服务 /usr/local/nginx/sbin/nginx -s reload
不出意外地话是 并不会 出现绿色小锁的
原来是数据库里文章中图片的链接还是http的,因此页面中存在一些内容不是通过https加载的,因此不显示绿色小锁
esay,去数据库里用一句简单的sql update命令即可,主要是wp_postmeta这张表里的内容
然而我替换之后喜悦的重新打开https://xuanyu.li
what
依旧不是绿色小锁,没办法,只能右键查看网页源代码搜索”http://“ 查看哪些内容是通过http加载的,结果发现我之前通过插件Avatars设置了一个头像,用的是我另外一个域名 wp.xuan-yu.me
好吧,去插件里修改了头像,再次打开https://xuanyu.li,终于显示绿色小锁了
之后,可以编辑一下Nginx的配置文件,当访问http://xuanyu.li 会自动跳转到http://xuanyu.li/
server {
listen 80;
server_name xuanyu.li;
return 301 http://xuanyu.li$request_uri;
}
SSL证书的配置到这就算完成了
上http://www.ssllabs.com/ssltest/测试一下配置证书的成果吧
WTF ? 居然是C ,刚刚及格是吗
从中可以看到因为支持较弱的DH秘钥交换参数被评为了B,因为没有禁用SSL3而被评为了C
好吧,那再来增强一下服务器SSL的安全性
cd /usr/local/nginx/conf/ssl
openssl dhparam -out dhparam.pem 2048
在ssl.conf添加几行配置
ssl_prefer_server_ciphers on;
ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers “EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 /
EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 /
EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4”;
keepalive_timeout 70;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
保存,重启Nginx服务
再次进行测试
成功的晋升A了~