あなたはそれがパスワードでアクセスしていますしない限り、あなたのクライアント証明書ファイルが秘密鍵を含めることはできません
...少なくとも二つの問題...
初の可能性を持っています。クライアントが秘密鍵にアクセスできるように、PKCS#12(* .pfx)の証明書をパスワードとともに使用する必要があります。クライアントコードは、既に他の人が投稿しているので、証明書を開くときにパスワードを提供する必要があります。 ...
Process p = Process.Start(
"makecert.exe",
String.Join(" ", new string[] {
"-r",// Create a self signed certificate
"-pe",// Mark generated private key as exportable
"-n", "CN=" + myHostName,// Certificate subject X500 name (eg: CN=Fred Dews)
"-b", "01/01/2000",// Start of the validity period; default to now.
"-e", "01/01/2036",// End of validity period; defaults to 2039
"-eku",// Comma separated enhanced key usage OIDs
"1.3.6.1.5.5.7.3.1," +// Server Authentication (1.3.6.1.5.5.7.3.1)
"1.3.6.1.5.5.7.3.2", // Client Authentication (1.3.6.1.5.5.7.3.2)
"-ss", "my",// Subject's certificate store name that stores the output certificate
"-sr", "LocalMachine",// Subject's certificate store location.
"-sky", "exchange",// Subject key type <signature|exchange|<integer>>.
"-sp",// Subject's CryptoAPI provider's name
"Microsoft RSA SChannel Cryptographic Provider",
"-sy", "12",// Subject's CryptoAPI provider's type
myHostName + ".cer"// [outputCertificateFile]
})
);
第二:これを作成するには、いくつかの方法がありますが、最も簡単で、その後、証明書に秘密キーをエクスポートするために、MMCの証明書マネージャを使用し、最初の証明書を生成するには、次のコマンドラインを使用することです
次の問題はサーバー側になります。サーバーはこの証明書を許可する必要があります。あなたは正しいロジックを持っていますが、ワイヤの間違った側で、この行をリクエストを処理するWebサーバーに移動します。あなたができない場合は、あなたは 'を取る必要があります。CER」ファイルサーバに保存された上で、サーバコンピュータの信頼リストに追加します。
ServicePointManager.ServerCertificateValidationCallback = (a,b,c,d) => true;
は、Windows .NET上で同じ仕事を作る方法を知っていますか?何らかの理由でx509ストア – galets