HTTPS 协议是由 SSL + HTTP 协议构建的可进行加密传输、身份认证的网络协议,相对于 HTTP 协议更加安全。最主要还是数据在传输过程中有 SSL 进行加密,让数据变得难以破解,从而提升数据传输时的安全性。细心的人会注意到我们在浏览网站时可能会注意到浏览器的地址栏会有不同的提示。
使用了 https 的站点被标记为是安全的连接 未使用https协议的站点被标记为是不安全的连接所以作为开发人员,应该尽力让项目使用 HTTPS 协议。庆幸的是现在的 SLL 证书可以免费创建,降低了使用门槛。接下来我介绍一下如何配置 HTTPS 以及在使用 HTTP 时强制跳转到 HTTPS。我使用的是 Nginx 服务器,所以就在 Nginx 上进行演示,操作系统是 Centos 7.6。
启用可选配置
$ yum -y install yum-utils
$ yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
安装 Certbot
sudo yum install certbot python2-certbot-nginx
生成 ssl 证书
sudo certbot --nginx
这里的域名是我事先配置好的。选择一个需要生成 https 的域名,输入对应的站点序号回车即可
选择是否使用 Http 协议时自动挑战到 Https 协议,建议选为是,即输入 2
不出意外的话,就可以看到该文字,表示你已经创建并配置成功
image.png
默认创建的 SSL 证书有效期为三个月,添加计划任务,自动续订更新
echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew" | sudo tee -a /etc/crontab > /dev/null
OK,配置文件就是这么简单,重新启动 Nginx $ service nginx restart
,使用浏览器访问站点,会使用 HTTPS 协议。在域名前手动加上 http://
进行浏览,发现会自动跳转到https协议。大功告成!
更多内容可去 certbot 探索
文章同步发布在我的个人博客中,传送门Hesunfly Blog
网友评论