想象一下,我们有两家公司,A(我们)和B,都有一些networking服务。 公司A使用公司的Bnetworking服务,反之亦然。 所有Web服务都使用服务器SSL证书进行保护,并使用客户端SSL证书进行身份validation。
为了testing目的,我们公司(A)发布了一个自签名的服务器证书和一个相应的客户端证书,这两个证书都由我们的独立CA签署,并被添加到服务器和客户端上的受信任的根CA.
现在,我们需要去现实世界,我们从GoDaddy订购了一个服务器证书。 我们如何获得相应的客户证书? B公司希望有一个新的客户端证书,这个客户端证书将会与可信任的CA签署,因为“它确保私钥保留在他们应该在的地方”。
他们发了一个CSR,我该怎么办? 如何使用它发布可信的客户端证书?
有趣的是,B公司使用B公司独立CA颁发的证书,但浏览器显示为有效(即绿色),尽pipe我没有将任何中间CA添加到我信任的根机构。 这种证书的authentication途径不包含像Thawte,Verisign等知名CA.那怎么可能?
客户端用于validation服务器的证书与服务器用于validation客户端的证书之间没有隐式的关联。
客户端使用可信的第三方颁发的证书(例如您现在拥有的证书)对服务器进行身份validation是完全可能的,而服务器将继续使用专用CA对客户端进行身份validation。 服务器也可以使用公共证书包对相同的客户端进行身份validation。 但如果你想要后者申请,你不能签署这些CSR; 他们必须去GoDaddy(或其他一些可信的第三方),每一个,并签署。
所以恐怕答案就是这个 。 如果您的服务器仍然configuration为使用私有CA根authentication客户端,那么您应该继续使用该私有根对CSR进行签名。 客户端可以继续使用公共包和服务器的新第三方证书来validation服务器; 这个模型没有错。 但是,如果您已将服务器重新configuration为使用公共证书包对客户端进行身份validation,则每个客户端都需要一个可信的第三方签名证书,您将不得不习惯于为这些客户付费。
至于如何看到一个绿色栏,可能是因为你以前在某个时候导入了他们的CA根作为有效的签名证书,或者它可能不是私人签署的,而是公开的。 如果不能看到有关的证书,是不可能的。