3

Я не смог найти решение для этого, если есть, пожалуйста, обратитесь к нему.

Бег:

  • Windows7 x64
  • Apache 2.4.4
  • OpenSSL 1.0.1j

и иметь следующее в моем httpd_ssl

SSLStrictSNIVHostCheck off  
SSLProtocol All -SSLv2 -SSLV3  
SSLCompression off  
SSLInsecureRenegotiation off  
SSLHonorCipherOrder on  

SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 
EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH EDH+aRSA !aNULL !eNULL 
!LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"

SSLUseStapling on  
SSLStaplingResponderTimeout 5  
SSLStaplingReturnResponderErrors off  

Вопрос:

Что бы я ни делал, я не могу включить TLSv1.1 и TLSv1.2.
Запустил сценарий ServerSSLTest, и все, что я получил, это Поддерживаемые версии: TLSv1.0

Что мне не хватает?

3 ответа3

5

Во-первых, вам нужна поддержка TLSv1.1 и V1.2 в OpenSSL - у вас есть v1.0.1j.

Далее идет поддержка Apache V2.2.24 (или новее) для элементов конфигурации, связанных с SSL. В частности, чтобы указать что-либо позднее, чем TLS1 (т. Е. TLSv1.1 TLSv1.2), вам потребуется эта более поздняя версия. У вас 2.4.4, так что все должно быть в порядке.

Далее, есть "взаимодействие" между параметрами конфигурации Apache: SSLProtocol и SSLCipherSuite

Так что для желаемой конфигурации, TLSv1.1 и TLSv1.2, вам понадобится что-то вроде:

SSLProtocol=All -SSLv2 -SSLV3 -TLSv1
SSLCipherSuite HIGH:!aNULL:!MD5:!RC4

Я ценю, что у вас есть более конкретный список комплектов шифров:

EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4

Однако, когда я проверил свой openssl (поток v1.0.1), я обнаружил, что поддерживаются следующие пре-TLSv1.2 комплекты:

 openssl ciphers -s -v 'EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4'

ECDHE-RSA-AES256-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA1
ECDHE-ECDSA-AES256-SHA  SSLv3 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA1
ECDHE-RSA-AES128-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(128)  Mac=SHA1
ECDHE-ECDSA-AES128-SHA  SSLv3 Kx=ECDH     Au=ECDSA Enc=AES(128)  Mac=SHA1
DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
DHE-RSA-CAMELLIA256-SHA SSLv3 Kx=DH       Au=RSA  Enc=Camellia(256) Mac=SHA1
DHE-RSA-AES128-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1
DHE-RSA-SEED-SHA        SSLv3 Kx=DH       Au=RSA  Enc=SEED(128) Mac=SHA1
DHE-RSA-CAMELLIA128-SHA SSLv3 Kx=DH       Au=RSA  Enc=Camellia(128) Mac=SHA1

Затем проверьте здесь (раздел A.5), http://tools.ietf.org/html/rfc4346 Я не думаю, что какой-либо из поддерживаемых наборов, перечисленных моим openssl, на самом деле действителен в TLSv1.1, так что вам нужно только завершить при тестировании TLSv1.2 (например, на Qualys https://www.ssllabs.com/ssltest/).

И, наконец, вся проблема поддержки клиентов - ссылка на Qualys, приведенная выше, удобна, поскольку в ней указывается, какой тип клиента (например, до определенных версий Android) сможет подключаться к представленному тестовому серверу). Поскольку вы достаточно специфичны для шифров, я думаю, что вы не будете слишком рисковать, разрешая TLSv1 (для которого читается v1.0), а также V1.1 и V1.2, если только вы не знаете, что база посетителей не будет включать TLSv1 только способные клиенты.

1

Для автоматической генерации файла ssl-config в Mozilla есть генератор ssl-config:

https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=apache-2.4.0&openssl=1.0.1e&hsts=yes&profile=modern

Это даст шаблон для сервера Apache 2.4 с версией openssl 1.0.1e.

Надеюсь, это поможет кому-то новичку в настройке ssl.

0

Попробуйте удалить SSLCipherSuite и измените строку SSLProtocol на:

SSLProtocol -All +TLSv1.1 +TLSv1.2

Я полагаю, что SSLCipherSuite переопределит SSLProtocol в том случае, если он указан в файле конфигурации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .