nginx - 如何为 NGINX 配置选择正确的密码

标签 nginx twilio nginx-config

我是 nginx 的新手,最近我决定更改配置文件以将我的应用程序从 http 重定向到 https 使用返回语句 return 301 https://$host$request_uri;。这一切都很好,直到我注意到我们没有通过 Twilio API 接收短信。我决定调试该问题,发现我收到了 SSL/TLS 握手错误

查看调试器,我发现他们认为这是问题的可能原因:

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 有一个支持的密码列表,可以在 here 中找到,但我不确定如何在我的配置文件中执行此操作。由于我的协议(protocol)包括 TLSv1、TLSv1.1 和 TLS1.2,我是否应该使用所有这些协议(protocol)?或者我只使用列表中的其中一个。我真的很困惑我需要在我的 ssl_ciphers 变量中设置什么。

我还读到在 ssl_protocols 中启用 SSLv3 是个坏主意。我能否将其从 ssl_protocols 中删除并保存配置,而不会导致重大问题?

如果有人能帮我回答这些问题,那将非常有帮助。谢谢!

最佳答案

Ciphers默认使用,Nginx根据版本配置。

In version 1.0.5 and later, the default SSL ciphers are HIGH:!aNULL:!MD5. In versions 0.7.65 and 0.8.20 and later, the default SSL ciphers are HIGH:!ADH:!MD5. From version 0.8.19 the default SSL ciphers are ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM. From version 0.7.64, 0.8.18 and earlier the default SSL ciphers are ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP. See Nginx Docs for more information.

但您也可以明确选择您要允许使用的密码: ssl_ciphers “密码 1 密码 2 ... 密码 N”; 例如 - ssl_ciphers“ECDHE-RSA-AES128-GCM-SHA256”;只支持这个特定的密码套件。 关于:

Also I read that having SSLv3 enabled in ssl_protocols is a bad idea. Can I just remove that from the ssl_protocols and save the config without it causing major issues?

它可能导致的唯一主要问题是使用 SSLv3 的客户端尝试连接您的服务器将被拒绝,因为它不被您的服务器接受(配置文件不支持)。无论如何,在某些版本中它是 Nginx 的默认设置,不应该成为问题。

来自 Nginx 文档:

From versions 0.7.65 and 0.8.19 and later, the default SSL protocols are SSLv3, TLSv1, TLSv1.1, and TLSv1.2 (if supported by the OpenSSL library).

关于nginx - 如何为 NGINX 配置选择正确的密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62325934/

相关文章:

php - 使用 Twilio 接收短信并将其存储在数据库中

nginx conf 文件 : Detect if browser language is "de", 然后重定向到页面 ....否则重定向到其他页面

docker - Nginx没有将服务器错误重定向到自定义页面

nginx - nginx入口 Controller 正向源ip

php - php 的 file_put_contents 对于 Nginx 的并发读取是否安全?

twilio - 使用 twilio 接听电话并回拨一位数字?

python - 使用 nginx 的 Django sendfile 无法将文件作为附件发送

twilio - Twilio 能否检测到对 Google 语音号码的调用是否被转发到语音邮件或真实的人?

Nginx:只允许访问匹配位置名称的引用

node.js - Node.js +express +socket.io +pm2 能否完全替代 Nginx 处理大并发请求?