本想着取名《从服务器到域名及https证书一律免费》,奈何之前发过一篇免费申请Oracle的Vps服务器,被和谐了。但免费域名申请,我倒是发过两篇文章,可以自行翻看。
本次要聊的就是免费https证书的获取, 目的是提高通信的安全性。至于为什么使用证书就能提高安全性,可参考我之前的文章《 借着网络安全周,图解密码相关技术 》,本次使用Let’s Encrypt. 在服务器端命令行操作, 很简单
使用https的原因
访问你的服务器是不是会有这个不安全的提示

原因就是没有使用https,所有请求响应都是明文,容易被拦截篡改。
前置条件
- 需要一台带有公网IP的服务器,且443端口是可以用的。
- 需要一个指向公网IP的域名。
Https证书申请
1.安装snapd
sudo yum install snapd # 也是个包管理工具,如果找不到,需要先安装epel源
sudo systemctl enable --now snapd.socket # 开机自启动
sudo ln -s /var/lib/snapd/snap /snap # 建立软链接
2.安装cerbot
sudo snap install core
yum remove certbot #如果以前安装过,则卸载
sudo snap install --classic certbot #安装cerbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot # 设置软链接
3.配置Nginx
首先确保Nginx命令在/usr/bin下(也可以建立软链接 ), nginx的配置文件在/etc/nginx下
打开/etc/nginx/nginx.conf 修改80及443的端口的server_name,在申请证书时会用到

别忘把http的所有请求都转到https

修改完记得重新加载nginx -s reload
4.申请证书
sudo certbot certonly --nginx

注意红框为你输入的内容,最终成功后,查看绿框中的证书及私钥位置
5.Nginx上配置证书
把证书和私钥的位置配置到nginx中

测试
注意你的服务器80及443端口是开着的,通过firewall-cmd
访问你的域名,是不是没有不安全提示了

自动续期
在定时任务中每日执行 certbot renew --dry-run
-----------------end-----------------
欢迎大神补充指正! 如有疑问请留言!
原创不易,感谢各位 关注、点赞、评论、转发 !