Let’s Encrypt配置通配符证书(nginx、centOS、腾讯云)

操作系统版本:

系统版本.png

操作步骤:

1.获取certbot-auto

wget https://dl.eff.org/certbot-auto
获取certbot-auto.png

2.并设置为可执行权限

chmod u+x certbot-auto

3.申请证书

3.1 执行命令
sudo ./certbot-auto --server https://acme-v02.api.letsencrypt.org/directory -d "*.my_custom_domain.xyz" --manual --preferred-challenges dns-01 certonly

会处理依赖关系,需要安装或升级依赖软件包才能够继续下去

依赖.png
3.2 更新和安装依赖以后,会要求输入邮箱
输入邮箱.png

输入自己的邮箱,用于紧急更新和安全通知。

3.3 同意各种权限

参考下图的红框输入:

询问.png

到了步骤3就不要按回车了,此时需要切换到域名管理后台加入一条DNS解析记录,以证明你拥有该域名的所有权。

3.4 添加DNS解析

登录域名管理后台,由于DNSPod域名解析服务已搬迁至腾讯云,可以使用DNSPod;以腾讯云的域名服务为例:

腾讯云域名管理.png

添加以后会有最多10分钟的生效时间,这里先要确认解析已经生效,才能在配置Let's Encrypt的终端按回车。

判断解析已经生效,可使用dig _acme-challenge.my_custom_domain.xyz txt,若出现DNS解析的记录值,则说明解析已经生效了。

3.5 DNS解析生效后,在原终端中按回车继续:
生成证书.png

证书已经成功生成,存储的位置在上图中画横线的路径。这两个路径将会用于Nginx的配置。

关于证书有效期:证书有效期90天,需要使用certbot-auto renew刷新。

4. Nginx配置

server {
        server_name www.my_custom_domain.xyz; #输入自己的域名
        listen 443 ssl;
        ssl on;
        ssl_certificate /etc/letsencrypt/live/my_custom_domain.xyz/fullchain.pem; #输入自己的路径
        ssl_certificate_key /etc/letsencrypt/live/my_custom_domain.xyz/privkey.pem; #输入自己的路径
        location / {
        }
}

重启nginx:/usr/local/nginx/sbin/nginx -s reload

5. 端口号开放的问题

如果浏览器打开提示:my_custom_domain.xyz拒绝了我们的连接请求。需要注意以下两项:

1.服务器安全组放开443端口(腾讯云):
腾讯云服务器安全组.png
2.Centos放开443端口
firewall-cmd --list-ports    #查看防火墙开放的端口
firewall-cmd --zone=public --add-port=443/tcp --permanent    #防火墙添加443端口
firewall-cmd --reload    #重启防火墙

推荐阅读更多精彩内容