数字证书认证机构(英语:Certificate Authority,缩写为CA),也称为电子商务认证中心、电子商务认证授权机构,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。
具有多个名称的证书通常称为SAN证书,有时称为UCC证书。
1. Let’s Encrypt
Let’s Encrypt 是一个非盈利性 认证机构通过运行互联网安全研究小组(ISRG)提供X.509 证书的传输层安全性不收取任何费用(TLS)加密。
证书有效期为90天,在此期间可以随时续订。该优惠伴随着一个自动化流程,旨在克服安全网站的手动创建,验证,签名,安装和续订证书。
1.1. 相关概念
- ACME协议:ACME 全称是 Automated Certificate Management Environment,直译过来是自动化证书管理环境的意思,Let’s Encrypt 的证书签发过程使用的就是ACME 协议
- Let’s Encrypt证书是如何运行的:
- 通过在Web服务器上运行证书管理代理(ACME客户端)来完成的。
- 参见:https://letsencrypt.org/how-it-works/
- 证书管理example.com的过程:
- 域名验证
- 证书颁发和撤销
1.2. 相关问题
- Let’s Encrypt提供哪些服务
- Let’s Encrypt是一个全局证书颁发机构(CA) ,让世界各地的人们和组织获取,更新和管理SSL / TLS证书。
- Let’s Encrypt提供 Domain Validation (DV) 证书,不提供 Organization Validation (OV)以及 Extended Validation (EV)
- Let’s Encrypt证书的生命周期是多少?它们有效期有多长?
- 证书有效期为90天, 建议您每60天自动续订一次证书
- 浏览器支持情况:https://letsencrypt.org/docs/certificate-compatibility/
- Let’EnCrypt不会保存证书私钥
- 不支持
OV
(组织证书)或EV
(扩展证书) - 支持多域名证书,相同的证书可以使用主题备用名称(SAN)机制包含多个不同的名称。
- 自动续订的问题:
- 有大量的ACME客户可用,https://letsencrypt.org/docs/client-options/
- 我们后续会基于acme.sh这个开源的项目来设定自动证书认证和签发的问题
- 支持签发通配符证书:
- 通配符证书必须通过
ACMEv2
或者使用DNS-01
查询
- 通配符证书必须通过
- 签发限制
- 每周20个注册域名证书,比如archstat.com、tkstorm.com
- 每个证书最多不超过100个子域(具有多个名称的证书通常称为SAN证书,有时称为UCC证书)
- 每周5份证书的重复证书限制,即如果您为名称[ www.example.com,example.com] 申请了证书,则可以在一周内为[ www.example.com,example.com] 申请另外四个证书。如果您通过添加[ blog.example.com] 更改了名称集,则可以申请其他证书
- 注册域名限制的证书续订豁免(如果发布请求包含与先前颁发的证书完全相同的主机名集,则将其视为续订)
- 每个帐户,每个主机名,每小时5次失败的失败验证限制
- 灰度环境:
- 灰度环境支撑更多的签发次数
- 参见:https://acme-staging.api.letsencrypt.org/directory
1.3. 针对https中的ca证书不受信问题
# curl -v https://tkstorm.com
....
curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
....
原因:由Let’s encrypt的签发的证书未在CentOS7的受信根证书
处理方式:将Let’s Encrypt的根CA证书,添加到系统的受信任的CA证书中:
// 用root账号,直接下载Let’sEncrypt的根证书到目录,并更新
wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem.txt -O /etc/pki/ca-trust/source/anchors/lets-encrypt-x3-cross-signed.pem
// 更新ca证书
update-ca-trust
2. 参考
- Let’s Encrypt 官档: https://letsencrypt.org/
- Let’s Encrypt 客户端支持情况:https://letsencrypt.org/docs/client-options/
- Let’s Encrypt 证书签发过程:https://letsencrypt.org/how-it-works/
- Let’s Encrypt 证书支持情况:https://letsencrypt.org/docs/certificate-compatibility/