我正在尝试设置OpenVPN我对这些术语有点困惑。
据我所知,PKI 包括:
- 单独的证书(也称为公钥)
- 服务器和每个客户端的一个私钥。
我对那部分没有异议并且我理解。
PKI 的第二部分是关于证书颁发机构 (CA) 的,由于涉及各种不同的术语,我对此有点难以理解。
文档说
生成主证书颁发机构 (CA) 证书和密钥
在本节中,我们将生成一个主 CA 证书/密钥、一个服务器证书/密钥证书和密钥,用于签署每个服务器和客户端证书。
我听到过很多术语,让我感到困惑的是人们提到
- 万能钥匙
- 根证书
- 证书颁发机构私钥
- 证书颁发机构密钥
- 证书颁发机构证书
我不确定其中几个是否都指的是同一件事,但证书颁发机构让我非常困惑。
为什么证书颁发机构首先拥有密钥?我以为证书颁发机构的工作是在服务器和客户端上签署密钥。CA 在此过程中是否也需要私钥?当人们谈论主密钥或根证书时,他们指的是这个私钥吗?这些根证书与私钥是一回事吗?
我浏览过几个网页但仍然无法理解 CA。
答案1
在本节中,我们将生成一个主 CA 证书/密钥、一个服务器证书/密钥证书和密钥,用于签署每个服务器和客户端证书。
那...我猜那只是复制粘贴时不小心把两个不同的段落混在一起的结果。应该是这样的:
“在本节中,我们将生成一个主 CA 证书/密钥,用于签署每个服务器和客户端证书。”
为什么证书颁发机构首先拥有密钥?我以为证书颁发机构的工作是在服务器和客户端上签署密钥。
是的,这正是密钥的用途——所有常见类型的数字签名都需要密钥对。TLS 客户端和服务器使用其密钥对连接“握手”数据进行签名,而 CA 使用其密钥对颁发的证书进行签名。
人们在谈论主密钥或根证书时指的是这个私钥吗?这些根证书和私钥是一回事吗?
接近,但不是。证书仅持有民众密钥对的一半,以及一些额外信息(所有者姓名、发行人姓名和签名等)。因此,它们是绝不与私钥相同,但它们总是成对出现。
如果有人使用私钥对文件进行签名,您可以根据其证书中存储的公钥来验证该签名。例如,所有颁发的证书均由 CA 的私钥签名,并根据 CA 的证书进行验证。
(CA 的自己的证书本身是经过签名的,但实际上没有必要验证它,因为它是明确配置作为受信任的根。
所以最后,你列出的所有术语都指的是同一件事——你的新 CA 有一密钥对(一个私钥和一个匹配的证书),并使用它来签署所有颁发的证书。