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

Невозможно отключить tls 1.1 для nginx

Провел много часов, но не могу исправить. Я не могу отключить TLS 1.1. Это необходимо для использования Stripe или любого другого шлюза CC для моего магазина на базе Wordpress Woocommerce.

Доменное имя: russianphilately.com

CentOS 6

Спереди: nginx, сзади: apache.

Версия nginx: nginx / 1.4.1 OpenSSL 1.0.2p

Nginx прослушивает 80 и 443 порта для всех IP-адресов на сервере. В конфигурационном файле nginx по умолчанию есть пустой раздел для 443, но есть записи для прослушивания портов 80 и 443 для всех IP-адресов.

Конфигурационный файл виртуального хоста nginx:

<pre>
<code>
server {
listen 149.56.235.139:80;
server_name russianphilately.com www.russianphilately.com;
return 301 https://$host$request_uri;
}
server {
#listen 149.56.235.139:80;
listen 149.56.235.139:443 default_server ssl;
server_name russianphilately.com www.russianphilately.com;
root /home/httpd/vhosts/russianphilately.com/httpdocs;

ssl_certificate    /etc/nginx/ssl/russianphilately.com_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/russianphilately.com.key;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers   on;
ssl_session_cache    shared:SSL:10m;
ssl_session_timeout 10m;
ssl_dhparam dhparam.pem;
#ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-
RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:EC
DHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
#ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES
256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA25
6:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:D
HE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA
256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
#ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES256-G
CM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RS
A-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC
3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
#ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA
256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:@STRENGT
H";
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA2
56:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:@STRENGTH
";
#ssl_ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-
RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:EC
DHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256";
#ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-
RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:EC
DHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_ecdh_curve secp384r1;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; always";
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
gzip on;
gzip_min_length 1100;
gzip_buffers 4 32k;
gzip_types text/plain application/x-javascript text/xml text/css;
gzip_vary on;

location / {
proxy_pass http://127.0.0.1:8080/;
#fastcgi_param  HTTPS on;
fastcgi_param SERVER_PORT 80;
#proxy_redirect http://localhost:8000/zemstvo/ http://russianphilately.com/c/zemstvo/;
rewrite ^/?zemstvo/a-c/(.*)$ /c/zemstvo/$1 redirect;
rewrite ^/?zemstvo/a-c/(.*)$ /c/zemstvo/$1 redirect;
rewrite ^/?zemstvo/d-k/(.*)$ /c/zemstvo/$1 redirect;
rewrite ^/?zemstvo/l-o/(.*)$ /c/zemstvo/$1 redirect;
rewrite ^/?zemstvo/p-s/(.*)$ /c/zemstvo/$1 redirect;
rewrite ^/?zemstvo/t-z/(.*)$ /c/zemstvo/$1 redirect;
rewrite ^/?zemstvo/(.*)$ /c/zemstvo/$1 redirect;
rewrite ^/?empire-1857-1917/(.*)$ /c/empire-1857-1917/$1 redirect;
rewrite ^/?ussr-1923-1940/(.*)$ /c/ussr-1923-1940/$1 redirect;
rewrite ^/?ukraine/(.*)$ /c/ukraine/$1 redirect;
rewrite ^/?civil-war/(.*)$ /c/civil-war/$1 redirect;
#rewrite ^/(.*)/$ /$1 permanent;
}

location ~ /\.ht {
deny all;
}

location ~* \.(gif|jpg|png|js|css|ico)$ {
expires 30d;
access_log  /home/httpd/vhosts/russianphilately.com/logs/static_access_log;
}
#if ( $request_filename ~ russianphilately.com/zemstvo/ ) {
#rewrite ^ http://russianphilately.com/c/zemstvo/? permanent;
#}
#if ( $request_uri ~ russianphilately.com/zemstvo/.+ ) {
#rewrite ^(.*) http://russianphilately.com/c/zemstvo/$1 permanent;
#}
#location ^~ /zemstvo/(.*) {
#  return 301 $scheme://$http_host/c/zemstvo/$1$is_args$query_string;
#  }



}

</code>
</pre>

На этом IP-адресе работает только этот веб-сайт, поэтому его никто не использует. Все конфигурации виртуальных хостов содержат только ssl_protocols TLSv1.2. Любые записи для любых других протоколов удаляются из конфигов nginx и даже apache.

Службы и сервер перезагружались много раз, но TLSv1.1 все еще доступен. ssltest.com показывает наборы шифров для # TLS 1.1 (и показывает шифры, не указанные в этой конфигурации!) и говорит

TLS 1.3 Нет TLS 1.2 Да TLS 1.1 Да TLS 1.0 Нет

    # TLS 1.1 (suites in server-preferred order)
    TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x39)   DH 4096 bits   FS 256
    TLS_RSA_WITH_AES_256_CBC_SHA (0x35)   WEAK  256
    TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (0x88)   DH 4096 bits   FS    256
    TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (0x84)   WEAK 256
    TLS_RSA_WITH_AES_128_CBC_SHA (0x2f)   WEAK  128
    TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x33)   DH 4096 bits   FS 128
    TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (0x45)   DH 4096 bits   FS    128
    TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (0x41)   WEAK 128
    TLS_RSA_WITH_3DES_EDE_CBC_SHA (0xa)   WEAK  112
    TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA (0x16)   DH 4096 bits   FS   WEAK 112

Chrome сообщает: «Соединение - устаревшие настройки соединения». Для соединения с этим сайтом используется TLS 1.2 (надежный протокол), RSA (устаревший обмен ключами) и AES_256_GCM (надежный шифр).

Понятия не имею, где еще искать конфиги tls 1.1 и как это исправить ... Спасибо за любую помощь!

[root@ks4002647 ~]# grep -ri "TLSv1.1" /etc/nginx [root@ks4002647 ~]#

[root@ks4002647 ~]# grep -ri "TLSv1.1" /etc Binary file /etc/httpd/modules/libphp5.so matches Binary file /etc/httpd/modules/mod_ssl.so matches Binary file /etc/httpd/modules/libphp5-zts.so matches /etc/httpd/conf.d/ssl.conf:SSLProtocol TLSv1.2 -TLSv1.1

Однажды я обманул себя

Результаты тестирования на сайте SSL Labs кэшируются, поэтому при повторном запуске теста убедитесь, что вы нажали «Очистить кеш» на странице результатов, чтобы начать новый тест.

Включает

Ваша конфигурация выглядит нормально. Однако мы не видим полного server часть конфигурации, поэтому это может быть какой-то внешний включаемый файл, который перезаписывает вашу конфигурацию ssl. Например тот certbot вставляет при установке сертификата Let's Encrypt с переключателем nginx autoconfig: include /etc/letsencrypt/options-ssl-nginx.conf. Убедитесь, что вы закомментировали это include.

Grep

Если ничего из вышеперечисленного не помогает, найдите файлы конфигурации, используя TLSv1.1.

grep -ri "TLSv1.1" /etc/nginx