立诚勿怠,格物致知
It's all about connecting the dots

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

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

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

sudo yum install epel-release

sudo yum install certbot-nginx

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

sudo yum install nginx

sudo systemctl start nginx

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

三、更新防火墙

sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT

sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT

四、获取证书

sudo certbot --nginx -d orzzone.com -d www.orzzone.com -d book.orzzone.com

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

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

五、Nginx添加Diffie-Hellman参数

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

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

然后打开nginx配置文件:

sudo vi /etc/nginx/nginx.conf

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

ssl_dhparam /etc/ssl/certs/dhparam.pem;

检查下nginx配置的正确性:

sudo nginx -t

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

sudo systemctl reload nginx

六、定期更新证书

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

sudo crontab -e

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

15 3 28 * * /usr/bin/certbot renew --quiet

这样,每个月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

赞(1) 打赏
文章名称:《CentOS7通过Let's Encrypt获取ssl证书以支持HTTPS》
文章链接:https://www.orzzone.com/centos7-lets-encrypt-support-https.html
商业联系:yakima.public@gmail.com

本站大部分文章为原创或编译而来,对于本站版权文章,未经许可不得用于商业目的,非商业性转载请以链接形式标注原文出处。
本站内容仅供个人学习交流,不做为任何投资、建议的参考依据,因此产生的问题需自行承担。

评论 抢沙发

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

非常感谢你的打赏,我们将继续给力提供更多优质内容!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册