为大家介绍一下使用Let's Encrypt 申请免费通配符SSL证书的方法,有需要的小伙伴可以参考一下:

1、Let’s Encrypt是什么?

    Let's Encrypt是国外一个公共的免费SSL项目,由Linux基金会托管。它的来头不小,由 Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,目的就是向网站自动签发和管理免费证书。以便加速互联网由HTTP过渡到HTTPS,目前Facebook等大公司开始加入赞助行列。

2、什么是通配符证书:

    域名通配符证书类似DNS解析的泛域名概念,通配符证书就是证书中可以包含一个通配符。主域名签发的通配符证书可以在所有子域名中使用,比如 .itbiancheng.com、m.itbiancheng.com。

3、下载客户端:

cd /home
wget https://dl.eff.org/certbot-auto

4、设置执行权限:

chmod a+x certbot-auto

5、申请证书:

./certbot-auto certonly  -d "itbiancheng.com" -d "*.itbiancheng.com" --manual --preferred-challenges dns-01  --server https://acme-v02.api.letsencrypt.org/directory

可能会因为系统Python的版本原因,或者未安装Python-pip。报依赖的问题。根据提示安装对应的依赖即可。

QQ截图20201020153324.png

执行到这里的时候,我们需要先去域名添加对应的DNS TXT记录之后,再去回车继续执行,会显示验证成功并生成了ssl证书文件

Waiting for verification...
Cleaning up challenges
Subscribe to the EFF mailing list (email: service@itbiancheng.com).

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/itbiancheng.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/itbiancheng.com/privkey.pem
   Your cert will expire on 2021-01-18. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again. To non-interactively renew *all* of your certificates, run
   "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

6、参数说明:

    (1)、certbot相关参数:

certonly    表示插件,Certbot有很多插件。不同的插件都可以申请证书,用户可以根据需要自行选择。
-d          为哪些主机申请证书。如果是通配符,输入 *.xxx.com(根据实际情况替换为你自己的域名)
--preferred-challenges dns-01      使用DNS方式校验域名所有权
--server     Let's Encrypt ACME v2版本使用的服务器不同于v1版本,需要显示指定

    (2)、校验域名的所有权的3种方式:

dns-01:给域名添加一个 DNS TXT 记录。
http-01:在域名对应的 Web 服务器下放置一个 HTTP well-known URL 资源文件。
tls-sni-01:在域名对应的 Web 服务器下放置一个 HTTPS well-known URL 资源文件。

7、注意事项:

    (1)、申请通配符证书,只能使用 dns-01 的方式。

    (2)、证书的有效期是90天

    (3)、如果统配和根域名都要使用的话,生成的时候需要写成-d "itbiancheng.com" -d "*.itbiancheng.com" ,域名替换成自己的即可

    (4)、到期之后,在执行一次上面的操作即可生成新的证书

    (5)、证书延期,也可以参照官方文档配置自动延期:https://certbot.eff.org/docs/using.html#pre-and-post-validation-hooks