2

ローカルホストではなくピアツーピア通信(あるマシンから別のマシンへ)に対して相互SSL認証を行う必要がありました。これは、 ValidateServerCertificateおよびValidateClientCertificateコールバックを持つSslStreamクラスBeginAuthenticateAsServerおよびBeginAuthenticateAsClientと共にMicrosoft.Netソケット通信クラスを使用して非同期的に行われます。このために、私は以下で構成される自己署名証明書を作成しました

• ルート証明書

• サーバー証明書

• クライアント証明書

前述の証明書を生成するために、makecert.exe と pvk2pfx.exe をフォルダーに配置し、以下のコマンドを実行しました。

ルート証明書作成コマンド

- .cer を作成し、秘密鍵を生成するには

makecert.exe -n "CN=abc.com" -r -pe -a sha512 -len 4096 -sky 署名 -cy 権限 -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 コンソールのどこに置く必要がありますか? これらをローカル マシン ストアまたは現在のユーザー ストアにインストールする必要がありますか?

前もって感謝します

4

1 に答える 1

0

ルート証明書はコンピューター ストアの信頼されたルート CA コンテナー (LocalMachine\Root) にインストールする必要があり、認証証明書はコンピューター ストアの個人用コンテナー (LocalMachine\My) にインストールする必要があります。

ところで、makecert.exe は非推奨のツールであり、テスト目的でも使用することはお勧めしません。代わりに、CertEnroll COM インターフェイス、certreq.exe ツール (テンプレート化された INF ファイルを使用) を使用するか、New-SelfSignedCertificate PowerShell コマンドレットを使用することを検討する必要があります。このコマンドレットは CNG キー ストレージ プロバイダーを使用するため、.NET でネイティブに使用できない場合があることに注意してください。

PowerShell での CertEnroll COM インターフェイスの使用例は、私のブログ投稿「PowerShell を使用した自己署名証明書の作成と、 TechNet ギャラリーの更新されたバージョン」にあります。

于 2014-10-31T07:37:33.217 に答える