SSL не может выполнить рукопожатие

#ssl #openssl #ssl-certificate

#ssl #openssl #ssl-сертификат

Вопрос:

После строгого следования документации центра сертификации SSL я не могу решить причину этой ошибки. При доступе к моему веб-сайту через HTTPS Firefox выдает следующую ошибку:

 SSL peer was unable to negotiate an acceptable set of security parameters.
(Error code: ssl_error_handshake_failure_alert)
  

Я вернулся и нашел это в журнале ошибок SSL (домен был изменен специально):

 [Mon May 09 02:11:05 2011] [warn] RSA server certificate wildcard CommonName (CN) `*.domain.com' does NOT match server name!?
  

Где определено имя сервера? Я не могу найти разумного объяснения в моем файле httpd-ssl.conf для устранения этой ошибки. Спасибо за вашу помощь!

Обновление окончательно решило проблему, подробно описанную ниже:

К сожалению, оно было создано значением по умолчанию в моем дистрибутиве Apache. Опция:

 SSLVerifyClient require
  

На самом деле необходимо было установить как:

 SSLVerifyClient optional
  

Я пока не выдаю сертификаты клиента. Однако заслуга в ответах за сужение проблемы. Я ценю помощь!

Комментарии:

1. Используете ли вы самозаверяющий сертификат?

2. Да, я создал свой собственный центр сертификации для выполнения этой работы. Это то, что мне понадобится в долгосрочной перспективе.

Ответ №1:

Эта строка в вашем файле журнала может иметь значение позже, но это всего лишь [предупреждение], и это не то, что означает handshake_failure. Handshake_failure означает, что не удалось согласовать набор шифров — ни один набор шифров не поддерживается ни клиентом, ни сервером. Посмотрите, какие шифры поддерживаются вашим сервером.

Редактировать: я всегда забываю, что если клиенту не удается предоставить требуемый сертификат, это также приводит к handshake_failure (раздел 7.4.6).

Комментарии:

1. Ок, наконец, понял, это был ключ (без каламбура) к решению проблемы. Я ценю помощь.

2. В этом случае вы действительно должны принять ответ. Как только вы наберете пару вопросов, процент принятых ответов отобразится рядом с вашим именем пользователя, и если он будет слишком низким, люди не захотят отвечать.

Ответ №2:

SSL сравнивает общее имя с именем сервера, к которому вы на самом деле пытаетесь подключиться.

Возможно, вы используете альтернативное имя, такое как ‘localhost’ или IP-адрес.

Комментарии:

1. Я выполнил поиск и убедился, что все имена серверов читаются «domain.com «. Также пробовал «*.domain.com » и, к сожалению, это все еще сохраняется. Это было в файлах Apache httpd.conf. Я чего-нибудь не хватает?

2. Это не так.domain.com для меня это не похоже на законное доменное имя. domain.com не соответствует шаблону (если его понимать буквально). Можете ли вы изменить имена на www.domain.com или что-то подобное?

3. да, имя сервера изменено на www.domain.com без подключения. однако на этот раз SSL не зарегистрировал ошибку. теперь он просто отказывается от рукопожатия. существуют ли какие-либо специальные значения, необходимые Apache для центра сертификации? Спасибо!

4. Я использовал Fiddler для расшифровки и перехвата трафика. Я обновляю вопрос с помощью ответа Fiddler.

Ответ №3:

Решена проблема, и, к сожалению, она была создана значением по умолчанию в моем дистрибутиве Apache. Опция:

 SSLVerifyClient require
  

На самом деле необходимо было установить как:

 SSLVerifyClient optional
  

Я пока не выдаю сертификаты клиента. Однако заслуга в ответах за сужение проблемы. Я ценю помощь!