NET :: ERR_SSL_OBSOLETE_VERSION с Chrome

У меня есть приложение узла, размещенное в AWS ec2, и установлены сертификаты letsencrypt. Когда я пытаюсь получить доступ к API, он выдает ошибку

Соединение - устаревшие настройки соединения. Соединение с этим сайтом зашифровано и аутентифицируется с использованием TLS 1.0, ECDHE_RSA и AES_256_CBC с HMAC-SHA1. TLS 1.0 устарел. Включите TLS 1.2 или новее. AES_256_CBC устарел. Включите набор шифров на основе AES-GCM.

Сертификаты SSL отображаются правильно от letsencrypt

У меня есть фактически установленный шифр TLS 1.2 на основе AES-GCM в файле конфигурации. моя версия nginx

Версия nginx: nginx / 1.16.1 OpenSSL 1.0.2k-fips 26 января 2017 г.

Есть указатели?

вот мой фрагмент файла nginx.conf

http {
include         /etc/nginx/mime.types;
default_type    application/octet-stream;

access_log  /var/log/nginx/access.log  main;

sendfile            on;
tcp_nopush          on;
tcp_nodelay         on;

keepalive_timeout   65;
types_hash_max_size 2048;



server {
    listen       80;
listen       443 ssl;
    server_name  localhost;
    root         /usr/share/nginx/html;

    ssl_certificate      /opt/ssl/cacert.pem;
    ssl_certificate_key  /opt/ssl/privkey.pem;
    ssl_session_timeout  5m;
    ssl_protocols SSLv2 TLSv1.2 TLSv1.1 TLSv1;
    #ssl_protocols  SSLv2 SSLv3 TLSv1;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;

    #charset koi8-r;

   
}

server {
    listen       443 ssl http2;
    server_name  aws.qureme.co.in;
    root         /usr/share/nginx/html;

    ssl_certificate /etc/letsencrypt/live/aws.qureme.co.in/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/aws.qureme.co.in/privkey.pem;

    ssl_session_timeout  5m;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1 TLSv1.3;
    ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    ssl_ecdh_curve secp384r1;
    ssl_session_tickets off;

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8;


}

}


person Raghu Vallikkat    schedule 12.11.2020    source источник
comment
Вероятно, фрагмент, который вы показываете, не говорит всей правды, т.е. должно быть что-то еще. Сервер aws.qureme.co.in явно отвечает только TLS 1.0. Также обратите внимание, что вы пытаетесь настроить TLS 1.3, хотя используемая вами версия OpenSSL не поддерживает TLS 1.3 - она ​​поддерживается только начиная с OpenSSL 1.1.1. Таким образом, проверьте любые другие части конфигурации (то есть не только этот конкретный раздел сервера) на предмет другой конфигурации TLS. Также проверьте журнал ошибок nginx на наличие проблем.   -  person Steffen Ullrich    schedule 12.11.2020
comment
Спасибо, Штеффен. Достаточно ли я меняю только библиотеку openssl или что-то еще, что связано с самим сертификатом. ? (Хотя я тоже в порядке даже с TLS 1.2). Есть еще одна конфигурация сервера, которая, как вы упомянули, может быть культовой. попробую это   -  person Raghu Vallikkat    schedule 12.11.2020
comment
Версии TLS не имеют никакого отношения к сертификату. Одного изменения версии OpenSSL недостаточно, поскольку а) nginx должен фактически использовать эту версию (т.е. строить против нее) и б) в части конфигурации nginx, которую вы не показывали, есть вероятные настройки, которые заставляют его использовать TLS 1.0.   -  person Steffen Ullrich    schedule 12.11.2020
comment
Привет, Штеффен! Как вы сказали, у меня есть еще один серверный блок, который можно было бы настроить на TLS 1.1. Я изменяю запрос с полной спецификацией. Там я удалил SSL3. #ssl_protocols SSLv2 SSLv3 TLSv1; Теперь из Safari работает. но Chrome показывает другую ошибку. ERR_SSL_PROTOCOL_ERROR   -  person Raghu Vallikkat    schedule 12.11.2020
comment
Вы не можете установить разные протоколы ssl для одного и того же IP-адреса на разных виртуальных хостах. Также ERR_SSL_PROTOCOL_ERROR слишком неопределенный, должны быть более подробные сведения об этой ошибке. И почему вы хотите поддерживать ужасный SSLv2, который в любом случае вряд ли поддерживается OpenSSL? А журнал ошибок серверов уже заглядывал?   -  person Steffen Ullrich    schedule 12.11.2020
comment
Штеффен, очень вам благодарен. Я установил один и тот же протокол для IP-адреса и доменного имени. А также цифоры. Теперь он работает как с Safari, так и с Chrom.   -  person Raghu Vallikkat    schedule 12.11.2020


Ответы (1)


Проблема заключалась в том, что я установил другой протокол и шифры для 2-х блоков сервера (один для IP-адреса, а другой телефон для доменного имени.

БОЛЬШОЕ СПАСИБО СТЕФФЕНУ УЛЛРИХУ за предоставленные материалы. Вот доработанная спецификация

server {
        listen       80;
    listen       443 ssl;
        server_name  localhost;
        root         /usr/share/nginx/html;

        ssl_certificate      /opt/ssl/cacert.pem;
        ssl_certificate_key  /opt/ssl/privkey.pem;
        ssl_session_timeout  5m;
        ssl_protocols TLSv1.2 TLSv1.1 TLSv1 TLSv1.3;
        ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
        ssl_prefer_server_ciphers   on;
      
    }

    server {
        listen       443 ssl http2;
        server_name  aws.qureme.co.in;
        root         /usr/share/nginx/html;

        ssl_certificate /etc/letsencrypt/live/aws.qureme.co.in/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/aws.qureme.co.in/privkey.pem;

        ssl_session_timeout  5m;
        ssl_protocols TLSv1.2 TLSv1.1 TLSv1 TLSv1.3;
        ssl_prefer_server_ciphers on;
        ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;


    }
person Raghu Vallikkat    schedule 12.11.2020