如何为使用CaCert CA的员工创build客户端SSL证书?

我想限制使用客户端SSL证书的主页的访问。 互联网上的大多数教程都是这样描述的:

  1. 创build自己的密钥CA.key
  2. 创build服务器密钥server.key(自签名)
  3. 使用CA.key签署server.key
  4. 创build(多个)客户端密钥client_xx.key
  5. 使用CA.key签署client_xx.key

我不想自己签署我的服务器密钥,而是使用CaCert。 所以我省略了第一步。 但是当我想创build客户端证书时,我需要使用哪个密钥? 我没有CaCerts CA.key。

我不是很确定,但因为没有人在这里回答我的问题。

唯一能够签署证书的实体是CA. 有不同级别的CA,所以你可以在理论上build立你自己的从属于CaCert的CA(因此它有CACert签署的自己的CAauthentication)。 这将使您要签署的正常证书参与长度为3(而不是两个)的信任链。

从我从这个页面收集到的信息,它有可能成为“CACert成员”,并得到他们所说的“subroot”证书 – 这将允许您签署自己的证书,并让任何信任根CACert证书的人信任前提是您还以某种方式提供下属CA的证书 – 例如,使用PEM格式的证书的服务器可能会使用证书文件,该证书文件仅仅是服务器证书和PEM格式的CA证书的串联) 。

我个人对这种设置的经验是这样的:前一段时间,xmpp.net联盟为pipe理员希望获得一个的任何XMPP服务器提供了免付费证书。 该联盟本身就是StartCom的一个CA下属。 所以在得到我的服务器证书之后,我需要告诉我的服务器将它自己的证书和xmpp.net证书放在一个包中,以使其信任链完成,因为他们通常信任StartCom而不是xmpp.net。

你显然不会得到CACert的关键,因为这会破坏整个系统。 您需要创build一个“证书签名请求”(aka CSR)以及一个新的私钥,然后将该CSR发送给CACert以获得签名(这将为您提供有效的签名证书)。

如果你使用openssl ca来进行你的证书pipe理,你可能会使用类似的东西

 openssl req -new -key client1.key -out client1.csr 

并将client1.csr的内容粘贴到CACert的证书申请表中。

你也应该看看CACert有关CSR一代的文档,它更详细地介绍了这个确切的主题。