有什么方法可以将我们自己生成的密钥对与已链接到根 CA(例如:verisign)的现有证书链接起来?基本上我的问题如下图所示
Verisign Root CA
|
--> Company XYZ certificate
|
---> Server foo certificate
一旦我为服务器 foo 生成了密钥对,我如何将它与公司 XYZ 证书链接起来?
有什么方法可以将我们自己生成的密钥对与已链接到根 CA(例如:verisign)的现有证书链接起来?基本上我的问题如下图所示
Verisign Root CA
|
--> Company XYZ certificate
|
---> Server foo certificate
一旦我为服务器 foo 生成了密钥对,我如何将它与公司 XYZ 证书链接起来?
如果公司 XYZ 有中间证书颁发机构证书,那么您可以。这种证书由根 CA 授权颁发新证书,这一事实在创建时由特定属性(基本约束、密钥使用、增强密钥使用)确定。
但是,如果 XYZ 公司拥有常规证书,例如用于识别网站、电子邮件用户或软件开发人员,则这是不可能的。即使在实践中认为没有什么能阻止你创建一个新证书并用另一个证书签名(如果你有它的私钥),我认为你不会获得一个有效的证书。
所以,如果你有正确的证书,你必须用它签署 foo。您可以使用makecert或open ssl来创建新的X509 证书。例如:
makecert -pe -n "CN=foo" -a sha1 -sky exchange -eku 1.3.6.1.5.5.7.3.1 -in "Company XYZ" -is my -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 -ss my -sr LocalMachine
您需要将公司 XYZ 的证书安装在 Windows 证书存储的本地计算机/个人位置。生成的证书将添加到同一个位置,您将能够从那里以各种格式(.pfx、.cer、.p7b)导出它。这也为新证书创建了密钥对。
如果您同时拥有这两个证书,请尝试连接证书文件。如果没有,请修改您的问题,以便我们知道您在此过程中的位置。
如果您在 Apache 服务器上设置它,请查看 mod_ssl 的SSLCertificateChainFile指令。