Я пытаюсь настроить Nginx для использования только TLS1.3 с двумя шифрами: TLS-AES-256-GCM-SHA384: TLS-AES-128-GCM-SHA256.
Итак, я попробовал эту конфигурацию:
ssl_protocols TLSv1.3;
ssl_ciphers TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256;
Но nginx -s перезагрузить ошибки с
nginx: [emerg] SSL_CTX_set_cipher_list("TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256") failed (SSL: error:1410D0B9:SSL routines:SSL_CTX_set_cipher_list:no cipher match)", "operationName": "Default", "category": "Default"}
Похоже, мне нужно добавить хотя бы один не-TLS1.3 шифр, чтобы конфигурация заработала. Я пробовал разные такие комбинации, и они сработали. Один из них является:
TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384
Почему это так? Я думаю, это происходит потому, что сам OpenSSL не принимает исходную строку набора шифров. Я использую OpenSSL-1.1.1g.
root@2ed6cae6e062:/azure/appgw# openssl ciphers -v TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256
Error in cipher list
140686067873536:error:1410D0B9:SSL routines:SSL_CTX_set_cipher_list:no cipher match:ssl/ssl_lib.c:2558:
Я нашел несколько полезных ссылок, но не мог понять, как достичь того, чего хочу - с использованием только шифровальных наборов TLS1.3.
https://forum.nginx.org/read.php?2,284909,284914#msg-284914
https://trac.nginx.org/nginx/ticket/1529
https://wiki.openssl.org/index.php/TLS1.3#Ciphersuites