【发布时间】:2018-02-06 11:03:12
【问题描述】:
我遇到了 https 请求的问题。问题是我正在配置 nginx 服务器以接受来自 Windows 计算机上应用程序的 https 请求,但无法连接到服务器。以下是wireshark的一些资料:
服务器上的 nginx 版本是 1.12.2,openssl 版本是 1.0.1f 。 Nginx 配置如下:
ssl_certificate /etc/nginx/cert/cert.pem;
ssl_certificate_key /etc/nginx/cert/cert.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
来自https://www.ssllabs.com/ssltest/analyze.html的关于server1的信息:
因为我在服务器 TLSv1.0 中找不到任何客户端的密码套件,例如“TLS_RSA_WITH_3DES_EDE_CBC_SHA”。我想知道是否是语言或软件之间的差异导致了问题的发生。
顺便说一句,除了关于 server2 的请求 url 之外,我没有更多信息,我的目标是部署 server1 以接受来自 Windows 客户端的请求。
任何人都可以提供一些解决问题的建议或提供一些线索吗?非常感谢!
【问题讨论】:
-
我发现这个工具非常有助于找到正确的 cipers 配置,给目标客户我希望支持 mozilla.github.io/server-side-tls/ssl-config-generator 。希望这可以帮助
-
(1) 这真的是 OpenSSL 1.0.1f 还是您使用的是发行版(如 RHEL/CentOS/Oracle/SL 或 Debian/Ubuntu/Mint)或类似的启动 从 1.0.1f 等上游版本开始,可能会更改构建设置(例如 RH 过去删除 EC),并添加反向移植的安全补丁? (2) 您尝试的 ssllabs 链接未显示有关您的服务器的任何信息。
-
感谢和抱歉错误链接到 ssllabs。我从该链接中获得了上面未显示的服务器域的信息,我应该显示有关它的屏幕截图。我使用命令
openssl version获得了OpenSSL 版本信息,它显示OpenSSL 1.0.1f 6 Jan 2014。 Linux 分区是 Ubuntu 14.04.5 LTS。 @dave_thompson_085 -
感谢您的建议。我在我的服务器上找到了有用的 nginx 配置。但让我感到困惑的是,我找不到任何可以匹配客户密码规范的密码套件。而且我找到了
TLS_RSA_WITH_3DES_EDE_CBC_SHAhere,OpenSSL 列中似乎没有相应的信息。我想知道服务器如何使用该密码套件处理请求。 @LucaT。 -
(1) 在Ubuntu上
openssl version只显示上游版本;要获得实际的修补版本,请使用apt*工具或dpkg -s openssl。但是检查启动板我没有看到任何会影响这一点的最新补丁。 (2) 上游 OpenSSL 确实实现了该套件,名称为 DES-CBC3-SHA,尽管某些版本由于最近的生日问题 (SWEET32) 而禁用它;我不知道为什么 Mozilla 网站没有它,但请参阅您的手册页以获取密码 (1) 或运行openssl ciphers [-v]。如果系统上的 nginx 日志中出现任何不工作的内容怎么办?