对于常规Http站点,由于使用明文传输,一方面网络通信存在被侦听的风险,另一方面国内ISP劫持较为严重,可能出现强加广告等问题。

使用Https是可以解决上面两个问题,但是服务端Https证书最好是主流CA进行颁发的,虽然也可以自己颁发Https证书,但是浏览器访问时会提示用户存在安全风险。

目前免费的证书提供商有startssl和let’s encrypt,这次我们使用let’s encrypt给网站进行加密。

下载脚本

使用第三方的脚本可以更方便的配置openssl和生成crt证书。

配置脚本

然后需要配置下使用letsencrypt的域名,修改letsencrypt.conf文件。
其中DOMAIN_KEY改成域名.keyDOMANI_DIR是网站的路径。其余的相应也改下。

执行脚本

结果如下,说明配置正确。

然后在当前执行脚本的目录会生成下面的文件。

主要是一些crt证书和key文件,下面修改nginx配置会用到这些文件。

nginx 配置

上面的脚本执行正确才能配置nginx,否则无效的证书会导致nginx无法正常运行。

其中rewrite ^(.*)$ https://$host$1 permanent;是强制全站使用HTTPS的意思,如果仍然有HTTP请求,那么会301要求浏览器跳转到HTTPS相关的路径。

测试nginx的配置

测试没有问题后,重启nginx

证书自动续签

letsencrypt的Https证书只有90天,但是我们可以无限续签,这里使用crontab创建一个定时任务,定期去请求最新的证书,防止证书过期。
创建一个文件auto_renew并写入下面的内容。

将任务提交到crontab。

配置WordPress

最后记得配置WordPress使用Https协议,否则可能存在发不了文章的问题。

发表评论

电子邮件地址不会被公开。 必填项已用*标注