我想限制使用客户端SSL证书的主页的访问。 互联网上的大多数教程都是这样描述的:
我不想自己签署我的服务器密钥,而是使用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一代的文档,它更详细地介绍了这个确切的主题。