证书生成:每次都需要root ca?

我想创build一个不同的(唯一的),自签名的证书来分发给一些客户端。 这样一来,我认为如果一个人注定了,我只需要删除他的证书而不打扰其他人

我遵循这个不错的文章: http : //www.eclectica.ca/howto/ssl-cert-howto.php

现在,我似乎每次想要为不同的客户端生成一个唯一的证书时,我都有义务创build一个根证书。

我真的有义务每次创build一个独特的根CA +签署authentication证书吗?

有没有更简单的方法? (比如每次都要避免重新创build根ca)?

你应该做一些关于在一些背景下如何部署PKI的文章。

您链接的文档通过创build您自己的根证书颁发机构(CA)。 完成之后,您将使用该CA签署并注册单个设备的证书(或者为中介CA签署证书 – 可能超出您的需求范围)。

你不想要CA根源的扩散。 您通常会创build一个根,并使用它来为设备签名证书。

在部署CA根后,一般工作stream程是:

  • 在需要证书的主机上创build公钥/私钥对
  • 在需要证书的主机上创build证书签名请求(CSR)
  • 将CSR提交给CA根进行签名
  • 取出CA根返回的证书,并将其安装在设备或主机上

您链接的那个文档描述了创build一个证书签名请求 ,但是它实际上并没有描述这是一个通常从请求证书的设备/主机上执行的过程。

您可以在设备/主机之外创build公​​钥/私钥对和CSR,但可以说最安全的方式是在设备/主机上,因为私钥永远不会离开设备。

例如,从一个OpenSSL客户端,我要为一个4096位RSA密钥准备一个证书签名请求(CSR):

  • openssl req -out Signing_Request.csr -new -newkey rsa:4096 -nodes -keyout private.key

在IIS Web服务器上,我将使用内置的GUI“向导”来准备新的CSR。 其他软件将有不同的准备CSR的方法。

一旦我拥有了CSR,我将把它交给CA,并且正如你在Signing a Certificate部分所描述的链接文件所描述的那样,我将让CA对请求进行签名,并将结果证书安装到请求设备/主机上。

顺便说一句:您通常会在整个企业中分发您的CA证书,以便客户端可以validation您的CA签名证书上的签名,并防止来自不可信CA的证书警告。