Так что я несколько раз бил головой по этой проблеме.Как включить шифр TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 с Apache 2.4 и mod_ssl
Проблема в том, что у меня есть приложение iOS, которое загружается в некоторый веб-контент. Попытки выполнить свою работу просто прекрасны, но дросселируются с ошибкой «Произошла ошибка SSL и не удалось создать безопасное соединение с сервером».
Я побежал URL через SSLLabs и увидел, что я следующее сообщение об ошибке перечислены в разделе Рукопожатие Simulation:
Apple ATS 9/iOS 9 "Server sent fatal alert: handshake_failure"
Не зная многое о нем, кажется, связано с не в состоянии обеспечить шифрования в WebView приложения, которое может гарантировать Forward Secrecy.
Список допустимых шифров для Apple ATS 9/iOS 9
указан here.
I соответствует этому списку к выходу openssl ciphers
который я предоставил here
Прежде всего, шифры из списка OpenSSL и шифры из SSLLabs выглядят в двух различных форматах/именовании. Но, кроме того, похоже, что я не поддерживаю ни одного из ECDHE_ECDSA[...]
, если только не прочитаю его неправильно.
В отсутствие ничего лучшего, я просто возиться с ним и конфигурации SSL моего хозяина теперь эти строки в них:
SSLProtocol -ALL +TLSv1.2
SSLCipherSuite TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:ECDHE-RSA-AES256-GCM-
SHA384:HIGH:!RC4:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK
SSLHonorCipherOrder On
Это кажется не делать абсолютно ничего.
Это перестает иметь смысл для меня, когда я смотрю на доступные SSLLabs отчеты TLSv1.2. Я разместил этот список her. На мой взгляд, это совсем не соответствует тому, что я определил в SSLCipherSuite
, но при сравнении этого списка со списком поддерживаемых шифров для ATS кажется вполне понятным, почему он жалуется.
Я признаю, что я немного над головой здесь. Я хотел бы понять, что происходит, но я честно не знаю, с чего начать.
- Есть ли у меня правильные шифры?
- Если нет, где я могу их получить (я в настоящее время на openssl 1.0.2k и Apache 2.4.25)
- Если у меня есть правильные шифры, как список openssl соответствует списку из SSLLabs?
- Как включить правильные шифры на сервере?
Большое спасибо за ваше время.
Если это действительно полный список шифров, обнаруженных SSLLabs, то у вас, вероятно, есть другое определение SSLCipherSuite где-то в конфигурации apache. Обратите внимание, что невозможно использовать разные SSLCipherSuite для разных VirtualHost, поэтому, пожалуйста, проверьте все файлы конфигурации. –
Ваши имена шифров неверны, как вы заметили (https://www.openssl.org/docs/man1.0.2/apps/ciphers.html имеет оба формата). Я не уверен, почему у вас не было бы шифров ECDHE, но попробуйте: https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=apache-2.4.18&openssl = 1.0.2k & hsts = no & profile = intermediate –
@SteffenUllrich Я уверен, что нет другой конфигурации. Ну, по крайней мере, насколько я могу быть. Я тестирую настройку только с одним VirtualHost. –