самозаверяющие сертификаты в сценарии объединения удостоверений - PullRequest
1 голос
/ 04 января 2012

Я использую веб-сервисы 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;

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

"Le message n'a pas pu être traité car l'action 'http://docs.oasis -open.org / ws-sx / ws-trust / 200512/ RST / SCT 'n'est pas valide ou non разведка. "}

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

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

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

Ваша помощь будет приветствоваться. Спасибо.

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

РЕДАКТИРОВАТЬ 01/01/2012: работает, когда сертификат выдан официальным центром сертификации (т. Е. Verisign, thawte ...)

1 Ответ

1 голос
/ 05 января 2012

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

См. Эту страницу:

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

...