Отключение SSLv3, но все еще поддержка SSLv2Hello в Apache
Многие клиенты SSL, в частности JDK 6, используют протокол SSLv2Hello для установления связи с сервером. Использование этого протокола не означает, что вы используете SSL 2.0 или 3.0 в этом отношении; это просто рукопожатие, чтобы определить, какой протокол использовать. [ http://tools.ietf.org/html/rfc5246
Однако в Apache, если вы отключите поддержку SSLv3, это, очевидно, удалит поддержку протокола SSLv2Hello. Apache Tomcat имеет явную поддержку SSLv2Hello; то есть вы можете включить это, но не включить SSLv3.
Есть ли способ сделать это в Apache?
[Обновить]
Это мой протокол конфигурации:
SSLProtocol +TLSv1 +TLSv1.1 +TLSv1.2 -SSLv3
2 ответа
Очевидно, что mod_ssl изменился за последний год или около того (я не нашел точную фиксацию источника, но нашел "проблему"). Источник теперь делает это:
If SSLProtocol only includes only one Protocol:
Handshake = That Protocol's Handshake Only
Else
Handshake = SSLv2 Handshake
Там нет переопределения для этого параметра. Единственное, что вы можете сделать, это отредактировать исходный код, перекомпилировать свою собственную версию. Я создал diff для обеспечения совместимости SSLv2 Handshake, если вы хотите скомпилировать свой собственный.
Таким образом, оказывается, что это не было проблемой все время. Apache примет рукопожатие SSLv2 с любой из конфигураций, которые я опубликовал выше. Я был введен в заблуждение ошибкой рукопожатия, полагая, что это проблема; на самом деле это была просто проблема конфигурации, когда сервер не доверял CA клиента.