Назад | Перейти на главную страницу

Отключение SSLv3, но поддержка SSLv2Hello в Apache

Многие клиенты SSL, особенно JDK 6, используют протокол SSLv2Hello для установления связи с сервером. Использование этого протокола делает не означает, что вы используете SSL 2.0 или 3.0 в этом отношении; это просто рукопожатие, чтобы определить который протокол для использования. [http://tools.ietf.org/html/rfc5246#appendix-E.2]

Однако в Apache, если вы отключите поддержку SSLv3, это, по-видимому, удалит поддержку протокола SSLv2Hello. Apache Tomcat явно поддерживает SSLv2Hello; то есть вы можете включить это, но не включить SSLv3.

Есть ли способ сделать это в Apache?

[Обновить]

Это моя конфигурация протокола:

  SSLProtocol +TLSv1 +TLSv1.1 +TLSv1.2 -SSLv3

Очевидно, mod_ssl изменился за последний год или около того (я не нашел точной фиксации в источнике, но нашел «проблему»). Источник теперь делает следующее:

If SSLProtocol only includes only one Protocol:
    Handshake = That Protocol's Handshake Only
Else
    Handshake = SSLv2 Handshake

Для этого параметра нет отмены. Единственное, что вы могли сделать, это отредактировать исходный код, перекомпилировать свою версию. Я создал разница для обеспечения совместимости с SSLv2 Handshake, если вы хотите скомпилировать свой собственный.

Так что, оказывается, это не проблема все время. Apache примет рукопожатие SSLv2 с любой из конфигураций, которые я опубликовал выше. Из-за ошибки рукопожатия меня ввела в заблуждение мысль, что это проблема; на самом деле это была проблема конфигурации, когда сервер не доверял ЦС клиента.