certbot-auto在2020年3月份停止维护,目前域名更新暂未受影响,但新增已经无法使用,官方建议使用snap进行certbot的安装和更新。

一、基本环境

1、安装依赖

sudo yum install openssl
sudo yum install epel-release

2、生成2048位 DH parameters:

sudo openssl dhparam -out /etc/letsencrypt/live/dhparams.pem 2048

3、安装snap

sudo yum install snapd

4、启用管理主 snap 通信套接字的 systemd 单元:

sudo ln -s /var/lib/snapd/snap /snap
注销并重新登录或重新启动系统以确保正确更新 snap 的路径
参考链接:https://snapcraft.io/docs/installing-snap-on-centos

5、更新snap到最新版

sudo snap install core; sudo snap refresh core

6、删除 certbot-auto 和任何 Certbot OS 包

sudo apt-get remove certbot(Ubuntu)
sudo dnf remove certbot(CentOS8)
sudo yum remove certbot.(CentOS7)
清理certbot-auto
参考链接:https://certbot.eff.org/docs/uninstall.html

7、安装certbot

sudo snap install --classic certbot
确保/var/lib属主和属组均为root,不然会安装失败

8、建立连接,确保certbot失效

sudo ln -s /snap/bin/certbot /usr/bin/certbot

9、执行命令安装证书

sudo certbot --nginx(自动)
Certbot默认nginx配置文件在 /etc/nginx/nginx.conf/usr/local/etc/nginx/nginx.conf,若你的nginx配置文件不在此处(以/usr/local/nginx/conf/nginx.conf为例),需在命令加上 --nginx-server-root /usr/local/nginx/conf,主配置文件所在目录,不是虚拟主机配置文件目录。
sudo certbot certonly --nginx(手动)
配置文件同上操作,执行后会出现选择域名列表,多个域名空格隔开,不在需要老版的各种参数,需要手动调整配置文件。

10、自动更新

Certbot 软件包带有一个 cron 作业或 systemd 计时器,它们会在证书到期之前自动更新证书。除非更改配置,否则无需再次运行 Certbot。可以通过运行以下命令来测试证书的自动续订:

sudo certbot renew --dry-run

二、DNS指向及域名的http服务

三、域名验证

1、nginx配置文件

location /.well-known/acme-challenge/ {    
    allow all;    
}

2、如果使用apache,移除apache的干扰

mv /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.org
service httpd restart

3、修改配置nginx文件

if ($scheme = http)    {    
    #return 301 https://$server_name$request_uri; (强制跳转)    
}    
    location ~ /.well-known {        
  allow all;    
  }    
  listen 443 ssl;    
  ssl_certificate      /etc/letsencrypt/live/www.yri.cc/fullchain.pem;    
  ssl_certificate_key /etc/letsencrypt/live/www.yri.cc/privkey.pem;    
  ssl_protocols        TLSv1 TLSv1.1 TLSv1.2;    
  ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';    
  ssl_prefer_server_ciphers on;    
  ssl_session_cache shared:SSL:20m;    
  ssl_session_timeout 20m;    
  ssl_dhparam /etc/letsencrypt/live/dhparams.pem;

5、nginx重新加载

6、打开防火墙端口

firewall-cmd --zone=public --add-port=443/tcp  firewall-cmd --zone=public --add-port=443/tcp --permanent    firewall-cmd --list-all 查看效果

7、浏览器测试

Last modification:March 26, 2022
如果觉得我的文章对你有用,请随意赞赏