Неверный цифровой сертификат - PullRequest
0 голосов
/ 03 апреля 2009

Я пытаюсь добавить SSL на свой сервер для отправки информации о клиенте клиенту.

Похоже, что он работает на стороне сервера с успешной загрузкой цифрового сертификата (.pfx).

Проблема возникает, когда я пытаюсь связаться с клиентом. Выдается исключение AuthenticationException, указывающее, что удаленный сертификат недействителен. Сертификат является самозаверяющим тестовым сертификатом - может ли это быть проблемой?

Если нет, у меня нет идей!

РЕДАКТИРОВАТЬ: Сертификат находится в папке доверенного корневого сертификата в MMC с обеих сторон (сервер и клиент работают на одном компьютере для целей разработки).

Ответы [ 3 ]

2 голосов
/ 03 апреля 2009

Мне пришлось переопределить метод проверки:

public static bool RemoteCertificateValidationCallback(Object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
    return true;
}

Очевидно, что он будет принимать каждый сертификат, который ему передан, поэтому мне нужно проверить, используя хэш сертификата или что-то подобное. Однако сейчас время каникул!

1 голос
/ 03 апреля 2009

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

0 голосов
/ 03 апреля 2009

Как вы сгенерировали сертификат?

  • По умолчанию makecert.exe создает сертификат, который не подходит для использования ssl-аутентификации.

  • Используйте опцию "-sky exhange" для генерации подходящей.

makecert -n "CN = Client" -pe -ss My -sr CurrentUser -sky exchange client.cer makecert -n "CN = Host" -pe -ss My -sr LocalMachine -sky exchange host.cer

...