2012-01-04 3 views
1

Я использую веб-службы WCF с WIF. Больше спецификации, я использую WS2007FederationHttpBinding. Все работает хорошо на машине localhost, используемой для разработки.самоподписанные сертификаты в сценарии объединения удостоверений

Однако при попытке удаленной установки с сервера развертывания на IIS и клиента, который будет запущен от другого компьютера, мой канал Открытый метод терпит неудачу со следующим исключением:

X.509 сертификат CN = Не удалось создать цепочку создания MyOwnCertificate. В используемом сертификате есть цепочка доверия, которая не может быть проверена. Замените сертификат или измените certificateValidationMode.

(MyOwnCertificate является самозаверяющим сертификатом с использованием makecert, сертификат был добавлен в доверенные корневые центры сертификации).

Так я первый попытался снять это ограничение с помощью следующего кода, для целей тестирования:

this.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.PeerOrChainTrust; 
     this.ClientCredentials.ServiceCertificate.Authentication.RevocationMode = X509RevocationMode.NoCheck; 

которого indeeds удаляет первоначальную ошибку исключения. Однако InnerSecurityTokenProvider теперь возвращает свое собственное исключение:

«Le сообщение n'a па пу être Traité автомобиля l'действия «http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/SCT»n'est па Валиде оу нон reconnue."}

(простите за французский сообщение).

Есть ли способ сделать самозаверяющие сертификаты работать в таком удаленном сценарии? (который я бы предпочел, так как мне нужен только сертификат для внутреннего использования)

Будет ли он работать с сертификатом, созданным с помощью openssl (http://www.freebsdmadeeasy.com/tutorials/freebsd/create-a-ca-with -openssl.php)?

Ваша помощь будет наиболее желанной. Благодарю.

РЕДАКТИРОВАТЬ 06/01/2012: Также проверено с подписанным сертификатом, как предлагается (+ список аннулирования), работает в локальном режиме, но не удаляется. Сертификаты были определены как объяснено here. У меня есть сертификат CA, развернутый под доверенным корнем. Сертификаты IP и Сервера развертываются в MY (с pfx) и Trusted People (с сертификатом). Также IIS был настроен так, чтобы учетная запись NETWORK могла получить доступ к закрытым ключам, которые были развернуты в LOCALMACHINE MY.

EDIT 07/01/2012: Это работает, когда сертификат, выданный официальным CA (т.е. Verisign, Thawte ...)

ответ

1

Попробуйте создать сертификат с именем, скажем, "SelfCA"; затем вставьте это в свой доверенный корневой магазин. Затем создайте новый сертификат для вашего использования, но на этот раз подпишите его с помощью «SelfCA».

Обратитесь к этой странице:

http://msdn.microsoft.com/en-us/library/ms733813.aspx

+0

Я проверил, но она не работает лучше в удаленном контексте. – fabien

+0

@fabien, я не уверен, о чем вы говорите. –

+0

Подписание сертификатов работает по вашему усмотрению. Однако в архитектуре клиент-сервер у моего клиента все еще появляется ошибка, возможно, из-за того, что он не знает, кто мой CA.Я протестировал, вставив CA на клиентскую машину, но все равно не работает. Теперь я тестирую сертификаты от поставщиков ЦС, возможно, это решит проблему. – fabien