Я новичок в nginx
и совсем недавно решил внести изменения в файл конфигурации, чтобы перенаправить мои приложения с http
на https
с помощью оператора return return 301 https://$host$request_uri;
. Все это работало нормально, пока я не заметил, что мы не получаем текстовые сообщения через Twilio API
. Я решил отладить проблему и обнаружил, что получаю ошибку SSL/TLS Handshake Error
.
Заглянув в отладчик, я увидел, что они назвали это возможной причиной проблемы:
Incompatible cipher suites in use by the client and the server. This would require the client to use (or enable) a cipher suite that is supported by the server.
Глядя на файл конфигурации nginx
, я заметил, что шифры не используются, что, вероятно, является корнем проблемы, а не потому, что TLS не включен, глядя на конфигурацию ниже:
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name localhost;
ssl_certificate "/etc/nginx/ssl/domain-crt.txt";
ssl_certificate_key "/etc/nginx/ssl/domain-key.txt";
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
## More configuration below this...
}
Twilio
содержит список поддерживаемых шифров, который можно найти здесь, но я не знаю, как это сделать в моем конфигурационном файле. Должен ли я использовать их все, поскольку мои протоколы включают TLSv1, TLSv1.1, and TLS1.2
? Или я использую только один из тех, что в списке. Я действительно смущен тем, что мне нужно установить в моей переменной ssl_ciphers
.
Также я читал, что включение SSLv3
в ssl_protocols
- плохая идея. Могу ли я просто удалить это из ssl_protocols
и сохранить конфигурацию, не вызывая серьезных проблем?
Если бы кто-нибудь мог помочь мне ответить на эти вопросы, это было бы очень полезно. Спасибо!