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

Могу ли я использовать TLSv1.0 для одного IP-адреса клиента, TLS v1.2 для всех остальных?

Что-то вроде этого?

# TLS v1.0+ for one IP

<VirtualHost _default_:443>

    Order deny,allow // <------------- HERE
    Deny from all // <------------- HERE
    Allow from 10.20.30.40 // <------------- HERE

    SSLProtocol all -SSLv2 -SSLv3 
    SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK
    SSLHonorCipherOrder     on
    SSLCompression          off

    ...

</VirtualHost>

# TLS v1.2 for everyone else

<VirtualHost _default_:443>

    Order allow,deny // <------------- HERE
    Deny from 10.20.30.40 // <------------- HERE
    Allow from * // <------------- HERE

    SSLProtocol -all +TLSv1.2
    SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-DSS-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA256:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:AECDH-AES256-SHA:ADH-AES256-GCM-SHA384:ADH-AES256-SHA256:ADH-AES256-SHA:ECDH-RSA-AES256-GCM-SHA384:ECDH-ECDSA-AES256-GCM-SHA384:ECDH-RSA-AES256-SHA384:ECDH-ECDSA-AES256-SHA384:ECDH-RSA-AES256-SHA:ECDH-ECDSA-AES256-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:EDH-DSS-DES-CBC3-SHA:AECDH-DES-CBC3-SHA:ADH-DES-CBC3-SHA:ECDH-RSA-DES-CBC3-SHA:ECDH-ECDSA-DES-CBC3-SHA:DES-CBC3-SHA
    SSLHonorCipherOrder on
    SSLCompression off

    ...

</VirtualHost>

Редактировать:

У меня также есть идея создать второй VirtualHost для другого порта, который говорит 344, и перенаправлять / маршрутизировать порт с 443 на 344 для этого конкретного IP. Является ли это возможным?

Создайте два виртуальных хоста, отличающиеся только используемым портом.

Используйте iptables для условного перенаправления выбранного IP-адреса на экземпляр TLS 1.0.

iptables -t nat -A PREROUTING -s CLIENT_OF_INTEREST -p tcp --dport 443 -j REDIRECT --to-port 344

Хотя, я должен добавить, что это оставило бы меня немного неприятным. Было бы лучше, если это вообще возможно, сделать так, чтобы клиент мог использовать TLS 1.2.

например. если это Java, убедитесь, что у вас добавлены «неограниченные» криптобиты.

Но я прекрасно понимаю, что это не всегда возможно.

Да, возможно, вы можете установить директиву SSLProtocol для каждого виртуального хоста.

Опубликованный вами образец конфигурации выглядит нормально, но вы используете дефолт виртуальные хосты. Вам лучше использовать IP: Port.

http://httpd.apache.org/docs/2.4/mod/mod_ssl.html#sslprotocol

https://httpd.apache.org/docs/2.4/mod/core.html#virtualhost