简单通过letsencrypt配置HTTPS证书
注意: 使用的是Let's encrypt证书,主要是为了能稍微提高一下个人网站的安全性,实际商用建议还是去相关服务提供商上使用付费证书, 这样更有保障些
参考来源
准备生成证书环境
废话:生成letsencrypt的HTTPS证书现在变得比以前简单多了. 之前配置它的证书除了通过命令生成证书, 应用的时候要手动改tomcat的web.xml配置(好像是这个来着), 然后改完之后还要上阿里云上手动添加域名解析记录,添加完之后还要验证. 然后现在重新租了一台服务器之后发现, 现在简单到飞起. 害, 不说那么多废话了.
- 进入let's encrypt官网,地址在上面参考来源里
- 主页的Get-started ---> 使用简体中文阅读此文档
- 这里集成letsencrypt基于两种情况
3.1 一种是通过命令行进行配置,
3.2 另外一种是通过服务提供商的配置入口去配置证书, 这要看服务提供商支不支持.
因为是个人网站用, 所以符合第一种情况, 使用certbot客户端进行生成
查看证书生成所需条件
-
进入certbot官网
- 在主页选择网站运行环境, 我这是nginx+centos8, 选择完成之后会生成基于选择的环境, 事先需要准备好的条件
- 确认好拥有对应的权限之后 即可开始按照下方指引开始安装certbot以及生成对应的证书了
安装snapd
-
安装方式参考snapd官网
-
看下自己服务器系统版本在不在snapd预装系统列表里面
就是说比如ubuntu20.04LTS以及Ubuntu18.04LTS以及ubuntu20.10,ubuntu21.04是有预装的,但是centos以及ubuntu其它版本就没有预装这玩意, 需要我们自己安装
-
centos安装snapd
这里一定要注意是centos8 还是centos7, 版本不对安装之后会有问题
选择centos, 进入centos安装snapd指引页面
可以看到对应的有centos8 和 centos7 安装EPEL 仓库的指引因为系统是centos8的, 所以执行
sudo dnf install epel-release sudo dnf upgrade
安装snapd
yum install snapd
安装完成之后,需要启用管理snap通信的systemd unitsudo systemctl enable --now snapd.socket
建立snap的软链接sudo ln -s /var/lib/snapd/snap /snap
(丢/usr/bin /usr/local/bin里面也行)安装完成, 有问题参考snapd官网, 上面有对应异常的处理方式, 之前配的centos7的EPEL仓库, 导致安装一直报localhost找不到对应的snapd
-
更新snapd版本
sudo snap install core; sudo snap refresh core
生成并使用证书
- 安装certbot:
sudo snap install --classic certbot
- 建立certbot软链接
sudo ln -s /snap/bin/certbot /usr/bin/certbot
- 生成以及安装证书
sudo certbot --nginx
只需要等它慢慢安装就好了, 安装会自动在nginx.conf里面配置相应的证书
6.1 或者只生成证书sudo certbot certonly --nginx
- 测试自动更新证书
sudo certbot renew --dry-run
安装certbot时会有一个cron任务或者systemd计时器, 这个会在证书过期之前自动更新证书, 配置完成之后就不用再跑一次了