2013-09-09 7 views
0

Может кто-нибудь, пожалуйста, дайте описание или (более предпочтительно) ссылку на то, как платформа .NET проверяет сертификат домена?Процедура проверки сертификата по умолчанию

Я пытаюсь подключиться к службе WCF, сконфигурированной с помощью BasicHttpBinding с безопасностью передачи сертификатов. Служба находится на машине 1 и клиенте на машине 2. Обе машины соединены с доменом. Сертификат службы выдается центром сертификации домена. Однако, когда клиент (Visual Studio Add Reference Мастер обслуживания в моем случае) ведет переговоры с сервисом всплывает сообщение предупреждения с тремя возможными причинами, что сертификат не является доверенным:

  1. сертификат безопасности, выданный компании является не в списке недоверчивости. Это может быть надежным.
  2. Дата сертификата безопасности действительна.
  3. Сертификат безопасности для хоста «Администратор» не совпадает с именем страницы, которую вы пытаетесь просмотреть. (Предупреждение!)

Но я спрашиваю о причине 1, почему?

С другой стороны, если я использую WcfTestClient, всплывает следующее сообщение об ошибке:

URI: https://ip:port/svc 
    Metadata contains a reference that cannot be resolved: 'https://ip:port/svc'. 
    Could not establish trust relationship for the SSL/TLS secure channel with authority 'ip:port'. 
    The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. 
    The remote certificate is invalid according to the validation procedure.HTTP GET Error. 

URI: https://ip:port/svc 
    There was an error downloading 'https://ip:port/svc'. 
    The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. 
    The remote certificate is invalid according to the validation procedure. 

Так может кто-нибудь пожалуйста, скажите мне, что происходит здесь? Как валидирован сертификат сервиса? И, пожалуйста, не говорите мне написать PermissivePolicy, чтобы переопределить процедуру по умолчанию?

ответ

1

Вы ударяя две проверки здесь:

  1. Сертификат «субъект» или «альтернативное название» поле должно соответствовать имя хоста
  2. Эмитент сертификата (или оригинал свидетельства, если это самоподписывающемуся) должны быть добавлены в хранилище сертификатов «Root» на клиентском компьютере

Исправление этой ошибки простое - просто повторно выдайте сертификат (ы) с правильным именем хоста и добавьте необходимую часть в «корневой» магазин.