現在、wcfサーバーで作業しており、展開を容易にするために証明書ストアではなくファイル/リソースから証明書をロードします。どのようにこれを行うにはどのようなアイデア?自己ホスティングwcfサーバー - 証明書ストアの代わりにファイルから証明書をロードする
ありがとうございました!
現在、wcfサーバーで作業しており、展開を容易にするために証明書ストアではなくファイル/リソースから証明書をロードします。どのようにこれを行うにはどのようなアイデア?自己ホスティングwcfサーバー - 証明書ストアの代わりにファイルから証明書をロードする
ありがとうございました!
私は、これはあなたが探しているものだと思う: http://www.codeproject.com/KB/WCF/wcfcertificates.aspx
はあなたが二重チャネルを使用していると仮定し、次のようにファイルから証明書を読み込むことができます。
クライアントのコードで//Load certificate file with private key
var certificate = new X509Certificate2("c:\certificate.pfx", "password");
//Configure your server by to use certificate, for example:
var host = new ServiceHost(typeof(YourService),
new Uri("Your service's uri"));
host.Credentials.ServiceCertificate.Certificate = certificate;
//configure your server to accept client's certificate , accept all
//certificate in this case, or you can assign it to the public key file
host.Credentials.ClientCertificate.Authentication.CertificateValidationMode
= X509CertificateValidationMode.None;
、負荷を上記と同じ証明書
//configure your client to use certificate
var channelFactory = new ChannelFactory<IYourService>();
channelFactory.Credentials.ClientCertificate.Certificate =
clientCertificate;
//configure your client to accept server's certificate,
//again, for simplicity, just accept any server's certificate
channelFactory.Credentials.ServiceCertificate.Authentication.CertificateValidationMode
= X509CertificateValidationMode.None;
私はこの時点から大丈夫だと思います。ファイルから読み込む場合は、pvk2pfx.exeによって生成された.pfxファイルをロードする必要があります.pvk2pfx.exeは、秘密鍵と公開鍵の両方を持っています。さもなければ、WCFは秘密鍵を検索する場所に混乱します。
以下のSO質問には、これを行う方法の詳細なコードサンプルがありますが、証明書がパスワードで保護されている場所では機能しない可能性があります。
ニース。セキュリティモードは「トランスポート」でなければならず、トランスポートのclientCredentialTypeは「証明書」でなければならないことを指摘する価値があります。 – Anders