在MMC控制台中安装SSL证书以进行相互(对等)身份验证的位置

时间:2014-10-30 05:00:57

标签: c# sockets authentication ssl-certificate mmc

我必须为对等通信而不是localhost(从一台机器到另一台机器)进行相互SSL身份验证。这是使用Microsoft.Net 套接字通信类以及 SslStream BeginAuthenticateAsServer BeginAuthenticateAsClient 异步完成的 ValidateServerCertificate ValidateClientCertificate 回调。 为此,我创建了包含

的自签名证书

•根证书

•服务器证书

•客户证书

要生成上述证书,我将makecert.exe和pvk2pfx.exe放在一个文件夹中,然后运行以下命令。

根证书创建命令

- 创建.cer并生成私钥

makecert.exe -n" CN = abc.com" -r -pe -a sha512 -len 4096 -sky signature -cy authority -sv RootCert.pvk RootCert.cer

- 使用.cer和私钥

创建.pfx

pvk2pfx -pvk RootCert.pvk -spc RootCert.cer -pfx RootCert.pfx -po test123

服务器证书创建命令

- 创建.cer并生成私钥

makecert.exe -pe -n" CN = abc.com" -a sha512 -sky exchange -eku 1.3.6.1.5.5.7.3.1 -ic RootCert.cer -iv RootCert.pvk -sp" Microsoft RSA SChannel Cryptographic Provider" -sy 12 -sv ServerCert.pvk ServerCert.cer

- 使用.cer和私钥

创建.pfx

pvk2pfx -pvk ServerCert.pvk -spc ServerCert.cer -pfx ServerCert.pfx -po test123

客户端证书创建命令

- 创建.cer并生成私钥

makecert.exe -pe -n" CN = abc.com" -a sha512 -sky exchange -eku 1.3.6.1.5.5.7.3.2 -ic RootCert.cer -iv RootCert.pvk -sp" Microsoft RSA SChannel Cryptographic Provider" -sy 12 -sv ClientCert.pvk ClientCert.cer

- 使用.cer和私钥

创建.pfx

pvk2pfx -pvk ClientCert.pvk -spc ClientCert.cer -pfx ClientCert.pfx -po test123

对于相互对等身份验证,我需要将这些证书放在MMC控制台中?我是否需要在本地计算机商店或当前用户存储中安装这些?

提前致谢

1 个答案:

答案 0 :(得分:0)

根证书必须安装在计算机存储(LocalMachine \ Root)的受信任的根CA容器中,并且身份验证证书必须安装在计算机存储的个人容器中(LocalMachine \ My)。

BTW,makecert.exe是不推荐使用的工具,建议不要用于测试。相反,您应该考虑使用CertEnroll COM接口,certreq.exe工具(带有模板化INF文件)或使用New-SelfSignedCertificate PowerShell cmdlet。请注意,此cmdlet使用CNG密钥存储提供程序,因此它本身可能无法在.NET中使用。

PowerShell中的CertEnroll COM接口使用示例在我的博文中:Self-signed certificate creation with PowerShellTechNet Gallery上的更新版本。