Аутентификация WCF - сертификат X509 - PullRequest
2 голосов
/ 15 июня 2011

Я хочу аутентифицировать пользователей в моей службе WCF с использованием сертификатов X509.Я настроил свой сервис на использование SSL и сделал все необходимые настройки WCF.Когда я пытаюсь использовать свой сервис, я получаю следующую ошибку:

 The remote certificate is invalid according to the validation procedure. 

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

Ответы [ 3 ]

1 голос
/ 15 июня 2011

Все сертификаты проверяются центром сертификации (CA).

В вашем случае я подозреваю, что вашему ЦС не доверяют. Запустите MMC и добавьте менеджер сертификатов для вашего локального компьютера. Se под Trusted Root CA (не помню точное слово).

Самоподписанные сертификаты означают, что CA сертификата совпадает с самим сертификатом.

Также поймите, как вы можете использовать сертификаты: используете ли вы их для идентификации своих клиентов или для целей шифрования транспортного уровня с помощью SSL?

Если вы хотите использовать сертификаты для множества разных клиентов, я настоятельно рекомендую вам ознакомиться с общедоступными услугами PKI от таких компаний, как Verisign

0 голосов
/ 16 июня 2011

Поскольку мы используем самозаверяющий сертификат для целей разработки, мне пришлось отменить проверку сертификата. Мой код был:

if (validateServerCertificate)
        {
            ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate);
        }
private static bool ValidateRemoteCertificate(object sender,
                                                  X509Certificate certificate,
                                                  X509Chain chain,
                                                  SslPolicyErrors policyErrors)
    {
        return true;
    }
0 голосов
/ 15 июня 2011

Самозаверяющие сертификаты не являются и не могут быть доверенными (если пользователь явно не доверяет им или какой-либо код не делает этого).Вам действительно необходимо приобрести сертификат в одном из установленных ЦС, таких как Thawte, GlobalSign, Comodo (InstantSSL).Мы используем GlobalSign и Comodo, у каждого есть свои преимущества.Вам нужен обычный «SSL-сертификат» (как его называют, хотя это имя неверно), выдаваемый для доменного имени вашего сервера.

...