Faster, Higher, Stronger
更快,更高,更强

CentOS7通过Let’s Encrypt获取ssl证书以支持HTTPS

博客使用http协议很长时间了,虽然没啥大问题,但每次chrome地址栏左侧都会显示个“不安全”的提示。今天弄了下服务器,现在已经支持https了,并且指定域名下的http请求都会转成https请求。具体操作记录如下。我的服务器是CentOS 7,代理用的是Nginx,如果你的也是,可以参考下面的操作记录。

一、安装Let’s Encrypt客户端程序Certbot

二、安装Nginx(如果你没装过的话)

安装完毕后的配置文件默认路径一般在/etc/nginx/nginx.conf,如果你是第一次装,具体如何配置网上有很多说明了,我的博客上好像以前也写过,自己搜下,这里不再赘述。

三、更新防火墙

四、获取证书

这里可以同时指定多个域名,每个域名前有个-d参数别漏了,上例中我就同时指定了3个。然后会有一些提示,自己阅读并做选择即可。里面会问是否自动将http请求重定向到https请求,看网上的说法最好选是,如果否的话,对百度来说可能是算多个站点有相同内容了,如果是这样的话,必然会有个站点的内容算重复内容了,不管是否是你原创的内容。事后我看了下nginx配置文件,其实这个重定向的逻辑它是自动加到nginx配置文件中的,所以后面想修改手动改下nginx配置文件即可。成功会看到类似下面这样的恭喜内容:

这时候你再通过https来访问你的网站,就可以正常访问了。

五、Nginx添加Diffie-Hellman参数

为提升网站的安全评级,还需要如此操作:

然后打开nginx配置文件:

在nginx配置文件server块中添加ssl_dhparam参数配置:

检查下nginx配置的正确性:

如果配置没问题,重启下nginx服务:

六、定期更新证书

Let’s Encrypt的ssl证书目前的有效期是90天,据说还有人提议将有效期缩短为60天(出于安全考虑),所以我们可以设置一个定时任务,让服务器自动定期更新这个ssl证书。先执行下述命令:

在上述命令自己打开的文件中添加下面这行代码:

这样,每个月28号服务器会去自动更新一次ssl证书(参考资料链接的那篇文章里设置的是每天更新一次,我感觉没必要设置那么高的频率)。加完后的nginx局部配置见下图:

图中ssl_dhparam是我手动加的,其他的内容则是因为Certbot安装证书时我选择了自动将http请求转发为https请求由程序自动添加的重定向逻辑——可以看出来,这些重定向逻辑是针对指定的域名的,所以服务器上照样可以有其他的http请求存在,不影响平时测试一些功能。

七、不好的消息

我发现虽然支持了https,Chrome还是提示“不安全”。看了下Chrome的提示,应该是需要整站都换成https请求,包括图片。以后再弄。

参考资料:

1、https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-centos-7

赞(0) 打赏(金额可任意指定)
未经允许不得转载:峰间的云 » CentOS7通过Let’s Encrypt获取ssl证书以支持HTTPS

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏