Самохостинг wcf сервера - загрузить сертификат из файла вместо хранилища сертификатов - PullRequest
5 голосов
/ 14 декабря 2010

В настоящее время я работаю на сервере wcf и хотел бы загрузить свой сертификат из файла / ресурса вместо хранилища сертификатов, чтобы упростить развертывание. Есть идеи как это сделать?

Спасибо за вашу помощь!

Ответы [ 3 ]

9 голосов
/ 03 февраля 2011

Предположим, вы используете дуплексный канал, вы можете загрузить сертификат из файла следующим образом:

//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;

Думаю, с этого момента ты должен быть в порядке. Просто помните, что если вы загружаете из файла, вам нужно загрузить файл .pfx, сгенерированный pvk2pfx.exe, он имеет как закрытый ключ, так и открытый ключ. В противном случае WCF запутается в том, где искать закрытый ключ.

0 голосов
/ 20 июля 2011

Следующий вопрос SO содержит подробный пример кода, как это сделать, однако это может не сработать, если сертификаты защищены паролем.

Программная защита сообщений WCF с сертификатами

0 голосов
/ 12 января 2011

Я думаю, это то, что вы ищете: http://www.codeproject.com/KB/WCF/wcfcertificates.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...