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模块,否则的话就重新去编译安装吧

1

修改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

打开https://xuanyu.li

不出意外地话是 并不会 出现绿色小锁的

原来是数据库里文章中图片的链接还是http的,因此页面中存在一些内容不是通过https加载的,因此不显示绿色小锁

esay,去数据库里用一句简单的sql update命令即可,主要是wp_postmeta这张表里的内容

然而我替换之后喜悦的重新打开https://xuanyu.li

what

依旧不是绿色小锁,没办法,只能右键查看网页源代码搜索”http://“ 查看哪些内容是通过http加载的,结果发现我之前通过插件Avatars设置了一个头像,用的是我另外一个域名 wp.xuan-yu.me

好吧,去插件里修改了头像,再次打开https://xuanyu.li,终于显示绿色小锁了

2

之后,可以编辑一下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/测试一下配置证书的成果吧

3

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服务

再次进行测试

4

成功的晋升A了~