是一个由非营利性组织互联网安全研究小组(ISRG)提供的免费、自动化和开放的证书颁发机构(CA)。
是国外一个公共的免费SSL项目,由 Linux 基金会托管,
它的来头不小,由 Mozilla、思科、Akamai、IdenTrust 和 EFF 等组织发起,
目的就是向网站自动签发和管理免费证书,以便加速互联网由 HTTP 过渡到 HTTPS,
目前 Facebook 等大公司开始加入赞助行列。
Certbot 为 Let's Encrypt 项目发布了一个官方的客户端 Certbot ,
利用它可以完全自动化的获取、部署和更新安全证书,并且 Certbot 是支持所有 Unix 内核的操作系统。
什么是泛域名证书?
例如:*.xxx.cn 也就是这个证书可以给某个域名的所有二级域名使用,就叫做泛域名证书(也称作通配符证书)。
Let's Encrypt 官方推荐我们使用certbot 脚本申请证书(当然也可以使用acme.sh等方式),
以下是申请步骤基于Debian10 python3.7.3如果你在操作过程中遇到什么报错,请多考虑python工具包的版本问题之类的。
Let's Encrypt自2018年开始支持申请泛域名证书,相比于单域名证书,泛域名证书更利于日常的维护。
Let's Encrypt泛域名证书
certbot官方
https://certbot.eff.org/
在centos7以上系统安装好ertbot服务后,直接上代码:
certbot certonly --preferred-challenges dns --manual -d *.baidu.com --server https://acme-v02.api.letsencrypt.org/directory --register-unsafely-without-email
certbot命令参数含义:
--manual:手动模式获取/安装证书。
--agree-tos:同意使用Let's Encrypt服务条款
--server:用于指定证书签发机构的ACME协议服务器的URL
--register-unsafely-without-email:用于在不提供电子邮件地址的情况下向 Let's Encrypt 注册新的账户
--preferred-challenges:用于指定ACME挑战的优先级顺序。
ACME挑战是获取SSL证书的过程中必须通过的验证过程,其中包括HTTP-01,DNS-01和TLS-ALPN-01三种类型的挑战。
通过--preferred-challenges选项,可以告诉certbot命令要按照哪种挑战的优先级顺序来验证您的域名。
默认情况下,certbot将首选HTTP-01挑战,因为它是最常用的一种验证方式。
但是,如果服务器无法接收来自ACME服务器的传入连接,
则可以通过--preferred-challenges dns选项将优先级更改为DNS-01挑战。
执行上面命令后,结果如下:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator manual, Installer None Obtaining a new certificate Performing the following challenges: dns-01 challenge for xx.cn - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NOTE: The IP of this machine will be publicly logged as having requested this certificate. If you're running certbot in manual mode on a machine that is not your server, please ensure you're okay with that. Are you OK with your IP being logged? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: y - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please deploy a DNS TXT record under the name _acme-challenge.xx.cn with the following value: nI0DhzH-vn0W7STVuLi2O-oIKuFNlqQx5EnjB-zewvs Before continuing, verify the record is deployed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Press Enter to Continue #让你的二级域名_acme-challenge.xx.cn用TXT方式 #解析到nI0DhzH-vn0W7STVuLi2O-oIKuFNlqQx5EnjB-zewvs #可以用dig -t txt _acme-challenge.xx.cn验证解析是否生效, #然后按下Enter通过验证。 #也可以用nslookup命令来验证。 Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/xx.cn/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/xx.cn/privkey.pem Your cert will expire on 2021-04-26. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot 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
至此证书申请成功!
替换nginx 中的 ssl 配置文件
nginx -s reload
类似: