SSL证书,可以通过 Let’s Encrypt 的免费SSL证书获取。
Certbot 是一个简单易用的 SSL 证书部署工具,由 EFF 开发,前身即 Let’s Encrypt 官方(Python)客户端。简单来说,certbot 就是一个简化 Let’s Encrypt 部署,和管理 Let’s Encrypt 证书的工具。certbot的开源项目在GitHub上,所以,我们的第一步,是clone certbot项目到本地:
git clone https://github.com/certbot/certbot
现在,可以通过脚本来申请证书了,以我的域名为例:
cd certbot./letsencrypt-auto certonly -d www.flywill.cn -d flywill.net
出现如下的证书申请与安装界面:
选择第二个选项,OK并继续。界面会提示证书申请成功的信息,表示证书已经成功生成。
需要注意的是,在申请证书之前,如果本机有运行Nginx,需要先停掉。并确认本机的443端口能被公网所访问
申请好的证书,包含四个文件,默认会放在这里:
/etc/letsencrypt/live/www.flywill.cn/fullchain.pem/etc/letsencrypt/live/www.flywill.cn/privkey.pem/etc/letsencrypt/live/www.flywill.cn/cert.pem /etc/letsencrypt/live/www.flywill.cn/chain.pem
有了这些证书文件,我们就可以去配置我们的Nginx了,实际上,我们用两个证书文件就行了,一个是带私钥的文件,一个是带公钥的文件。拿我的Nginx配置文件举个栗子:
server {
listen 80 default; #默认监听80的HTTP端口;
listen 443 ssl; #确保Nginx监听HTTPS的443端口
# SSL证书配置
ssl_certificate /etc/letsencrypt/live/www.flywill.cn/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.flywill.cn/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
root /home/xiaozhou;
index index.html index.htm;
server_name flywill.cn www.flywill.cn;
}
配置好之后,直接用Nginx reload配置即可。
证书配置好了,我们就可以直接用浏览器通过https地址来访问和验证证书了,比如:https://flywill.cn
我们会看到地址栏的前面有一把小锁,嗯,咱是有证书的人了!
点击查看证书,还可以看到申请到的证书的详细信息,Let’s Encrypt签发的,货真价实。
如果网站能打开但是还是显示不安全的链接,打开F12,console页签下会显示有些资源文件事以HTTP形式加载的,需要去Wordpress后台修改,一般在这两处地方修改就可以了。
其余文章内的链接可以通过这个SQL修改:
UPDATE wp_posts SET post_content = replace( post_content, 'http域名','https域名');
最后一步,就是证书的自动续期了。Let’s Encrypt的证书,默认的有效期是90天,不过官方推荐每60天续期。到期之后,我们需要用命令来为证书续期,不过我们是懒人,这种体力活还是交给机器来完成比较合适。所以,我们可以用Linux的cron job来完成这类的任务,配置cron job,每两个月的第一天,执行下面的命令:
#minute hour day month day_of_week command 0 0 1 */2 * /letsencrypt/certbot-auto renew --post-hook "systemctl reload nginx"
注意在cron job里面需要用绝对路径
简单的六步,我们轻轻松松的就申请了证书,并给blog开启了https访问,还给证书设置了自动续期,嗯,多亏了certbot这个工具,相比起当初申请StarSSL的各种繁琐,一切实在是来得太方便了。
配置完以上信息以后,网站已经可以使用https访问,不出意外chrome浏览器访问应该也能出现小绿锁了。后续的话,也可以做一下以下优化配置:
欢迎转载,转载请注明出处!
独立域名博客:flywill.cn
欢迎关注公众微信号:Java小镇V
分享自己的学习 & 学习资料 & 生活
想要交流的朋友也可以加微信号备注入群:EscUpDn