Что-то вроде этого?
# 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