一、安装snap
参考文档:https://snapcraft.io/docs/installing-snap-on-centos
https://letsencrypt.org/zh-cn/docs/
1、将 EPEL 存储库添加到 CentOS 7 系统
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo yum install epel-release
2、安装snapd
sudo yum install snapd
3、启用管理主 snap 通信套接字的systemd单元
sudo systemctl enable --now snapd.socket
4、启用经典/var/lib/snapd/snap快照支持
sudo ln -s /var/lib/snapd/snap /snap
5、注销并重新登录或重新启动系统以确保快照的路径正确更新
reboot
二、安装certbot
1、删除certbot包
sudo yum remove certbot
2、安装certbot
sudo snap install --classic certbot
3、准备certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
4、选择如何运行Certbot
1、获取并安装证书
运行此命令获取证书,并让Certbot自动编辑nginx配置以提供证书
sudo certbot --nginx
这个问题是由于 certbot生成证书时,需要读取默认nginx,路径错误,需要添加软连接 ,将Certbot指向 /usr/bin/nginx 与 /etc/nginx
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
ln -s /usr/local/nginx/conf/ /etc/nginx
上面命令中的/usr/local/nginx/sbin/nginx与/usr/local/nginx/conf/是服务器nginx实际安装路径。
再次运行:
这个问题是因为nginx没有开启ssl模块。按照如下步骤执行
1、nginx开启ssl模块
(1)安装openssl
sudo yum install openssl openssl-devel
(2)获取nginx源码
wget http://nginx.org/download/nginx-1.24.0.tar.gz
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0
(3)重新配置并构建nginx
./configure --with-http_ssl_module
make
sudo make install
(4)重新启动nginx
sudo nginx -s reload
2、重新安装证书
使用测试环境验证
sudo certbot --nginx --test-cert
2、仅获取证书
如果想手工修改nginx配置,运行这个命令。
sudo certbot certonly --nginx
5、测试自动更新
系统上的Certbot包附带一个cron作业或系统计时器,它将在证书过期前自动更新证书。您不需要再次运行Certbot,除非您更改了配置。您可以通过运行以下命令来测试证书的自动续订:
sudo certbot renew --dry-run
更新certbot的命令安装在以下位置之一:
/etc/crontab/
/etc/cron./
systemctl list-timers
6、确认certbot工作状态
要确认您的网站设置正确,请在浏览器中访问https://yourwebsite.com/并在URL栏中查找锁定图标。