2009-04-03 4 views
0

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

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

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

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

EDIT: Сертификат находится в папке доверенного корневого сертификата в MMC с обеих сторон (сервер и клиент выполняются на одной машине в целях развития).

ответ

2

Я должен переопределить метод проверки:

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

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

1

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

0

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

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

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

MakeCert -n "CN = Client" -pe -sS Мой -sr CurrentUser -sky обмена client.cer MakeCert -n "CN = Host" -pe -ss Мои -sr LocalMachine -sky обмен хозяина .cer

+0

Я не мог найти makecert.exe в любом месте на моей машине разработки, поэтому мне пришлось использовать генератор сертификатов с открытым исходным кодом. Кажется, он работает! – Bailz

+0

вы можете вызвать makecert с помощью команды Visual Studio (Developer Command Prompt для VS) – Sielu

+0

Для меня это (в настоящее время) доступно в C: \ Program Files (x86) \ Windows Kits \ 8.1 \ bin \ x86 \ makecert.exe – timvw

 Смежные вопросы

  • Нет связанных вопросов^_^