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

Могу ли я использовать 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>

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

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

решение1

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

Используйте 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, убедитесь, что у вас добавлены «неограниченные» криптографические биты.

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

решение2

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

Пример конфигурации, который вы опубликовали, кажется правильным, но вы используетепо умолчаниюvirtualhosts. Лучше использовать 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

Связанный контент