cisen/blog

SSL证书相关/CA机构/证书颁发/私有CA

Opened this issue · 1 comments

cisen commented

Gworg统计结果国内主要签发机构:Comodo、GlobalSign、Certum、DigiCert、Let’s Encrypt。
DigiCert机构还存在旗下品牌(Symantec、GeoTrust、RapidSSL、Thawte)。

结构

  • 公共CA
  • 中间CA, 中间证书颁发机构(CA)
  • 私有CA

hashicorp 的vault 是一个类似的pki 管理工具,同时caddy 内部的证书处理也是利用了smallstep certificates 能力

https://smallstep.com/certificates/
https://github.com/smallstep/certificates
https://smallstep.com/docs/step-cli
https://smallstep.com/docs/step-ca
https://github.com/caddyserver/caddy
https://github.com/caddyserver/certmagic
https://github.com/go-acme/lego

cisen commented

私有CA证书如何跟公共CA通讯?
私有CA证书与公共CA通信并不是典型的场景,因为它们分别针对不同的应用环境和信任范围。私有CA颁发的证书主要用于组织内部系统、应用程序和用户,而公共CA颁发的证书则面向公共互联网上的设备和浏览器。

但在某些情况下,您可能希望私有CA的证书在与公共CA颁发的证书一样受到广泛信任。为实现这一目标,您可以选择以下两种方法之一:

使用公共CA签名的中间证书:您可以将私有CA设置为一个中间CA,由公共CA对其签名。这意味着私有CA颁发的证书将继承公共CA的信任链。为此,您需要与公共CA达成协议并遵循其规定和要求。但是,这种方法并不常见,因为公共CA通常有严格的审计和合规要求,而且签署中间CA可能带来额外的成本和责任。

将私有CA的根证书导入客户端设备:另一种方法是将私有CA的根证书导入客户端设备(如浏览器、操作系统)的信任根存储。这样,私有CA颁发的证书将被这些设备信任。但请注意,这种方法仅适用于组织内部或在控制范围内的设备。对于公共互联网上的设备,您仍需要使用公共CA颁发的证书。

总之,私有CA证书与公共CA通信并不是一种典型的应用场景。要实现私有CA证书与公共CA证书之间的信任,您可以选择使用公共CA签名的中间证书,或将私有CA的根证书导入受信任设备。然而,这两种方法都有局限性,因此请根据您的具体需求和应用场景做出决策。

证书产业的基本玩法:首先根证书的所有者(大的证书厂商)会和 OS 厂商合作,让 OS 等环境默认信任自己的根证书。然后根证书的所有者会签发中间证书卖给小一些的证书厂商。这些小的证书厂商再用中间证书创建最终证书卖给普通消费者。
举个例子,像我们常用的 Windows 操作系统默认就信任了很多厂商的根证书,比如 VeriSign 的证书,并且这些证书还会随着 Windows 系统的更新而更新:

上图中,VeriSign 是根证书所有者,你安装 windows 操作系统时,VeriSign 的根证书就被安装到信任列表中了。Symantec Class 3 SHA256 Code Signing CA 则是 Symantec 公司从 VeriSign 公司购买的中间证书。GrapeCity inc. 则是 GrapeCity 公司从 Symantec 公司购买的最终证书用来对产品进行签名。当然,有时候根证书厂商比如 VeriSign 等也会直接向最终用户销售证书。