Как использовать makecert для создания сертификата X509, принятого WCF

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

        ServiceHost svh = new ServiceHost(typeof(MyClass));

        var tcpbinding = new NetTcpBinding(SecurityMode.TransportWithMessageCredential, true);
        //security
        tcpbinding.Security.Message.ClientCredentialType = MessageCredentialType.UserName;
        svh.Credentials.UserNameAuthentication.CustomUserNamePasswordValidator = new BWUserNamePasswordValidator();
        svh.Credentials.UserNameAuthentication.UserNamePasswordValidationMode =UserNamePasswordValidationMode.Custom;
        svh.Credentials.ServiceCertificate.Certificate = BookmarkWizSettings.TcpBindingCertificate;
        ....
        svh.Open();

Я использовал

makecert -pe myCertificate

и

makecert -sv SignRoot.pvk -cy authority -r signroot.cer -a sha1 -n "CN=Dev Certification Authority" -ss my -sr localmachine

и

makecert -r -pe -n "CN=Client" -ss MyApp -sky Exchange

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

It is likely that certificate 'CN=Dev Certification Authority' may not have a 
private key that is capable of key exchange or the process may not have access 
rights for the private key. Please see inner exception for detail.

, а внутреннее исключение - null.

Скорее всего, это уловка, но я не понимаю.

Как мне создать соответствующий сертификат для моей службы WCF ??

8
задан Arsen Zahray 12 February 2012 в 18:54
поделиться