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

C# 在MMC控制台中的何处安装SSL证书以进行相互(对等)身份验证,c#,sockets,authentication,ssl-certificate,mmc,C#,Sockets,Authentication,Ssl Certificate,Mmc,我必须为对等通信而不是本地主机(从一台机器到另一台机器)进行相互SSL身份验证。这是使用Microsoft.NetSocket通信类以及SslStream类BeginauthenticatesServer和BeginauthenticatesClient异步完成的,它们具有ValidateServerCertificate和ValidateClientCertificate回调。 为此,我创建了自签名证书,包括 •根证书 •服务器证书 •客户证书 为了生成上述证书,我将makecert.exe和

我必须为对等通信而不是本地主机(从一台机器到另一台机器)进行相互SSL身份验证。这是使用Microsoft.NetSocket通信类以及SslStreamBeginauthenticatesServerBeginauthenticatesClient异步完成的,它们具有ValidateServerCertificateValidateClientCertificate回调。 为此,我创建了自签名证书,包括

•根证书

•服务器证书

•客户证书

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

根证书创建命令

-创建.cer并生成私钥

makecert.exe-n“CN=abc.com”-r-pe-a sha512-len 4096-sky签名-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加密提供程序”-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加密提供程序”-sy 12-sv ClientCert.pvk ClientCert.cer

-使用.cer和私钥创建.pfx

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

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


提前感谢

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

顺便说一句,makecert.exe是不推荐使用的工具,即使在测试中也不推荐使用。相反,您应该考虑使用CeltRoop-COM接口、CelTeq.EXE工具(带有模板INF文件)或使用PopeStultCMDLeT。请注意,此cmdlet使用CNG密钥存储提供程序,因此它可能无法在.NET中本机使用

PowerShell中CertEnroll COM接口使用的示例见我的博文:和上的更新版本