使用 ngixn+unicorn 时 Safari 上的 SSL/HTTPS 问题(无挂锁图标)
·
问题:使用 ngixn+unicorn 时 Safari 上的 SSL/HTTPS 问题(无挂锁图标)
我有一个在 nginx+unicorn 上运行的应用程序。这就是我的服务器块的样子
upstream rtdev{
# fail_timeout=0 means we always retry an upstream even if it failed
# to return a good HTTP response (in case the Unicorn master nukes a single worker for timing out).
server unix:/tmp/rtapp.sock fail_timeout=0;
}
server{
listen 443 ssl; # default;
server_name devapp.resolutiontweet.com;
root /home/xxxxxxx/xxxxxxxxx/public;
client_max_body_size 12M;
ssl on;
ssl_certificate xxxxxxxx/xxxxxxxxx.crt;
ssl_certificate_key xxxxxxxx/xxxxxxxxx.key;
ssl_ciphers "AES256+EECDH:AES256+EDH";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
ssl_stapling on; # Requires nginx >= 1.3.7
ssl_stapling_verify on; # Requires nginx => 1.3.7
location / {
access_log off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
proxy_headers_hash_max_size 8192;
proxy_headers_hash_bucket_size 256;
proxy_pass http://rtdev;
#proxy_redirect http://rtdev https://devapp.resolutiontweet.com;
}
}
我遇到了一个奇怪的问题,Safari 没有显示安全站点的“锁定”符号。所有其他浏览器都显示它(在 Chrome 和 Firefox 上测试)。附上截图供参考。



Mozilla Firefox Google Chrome Safari 修改我的服务器块中的一些内容修复了该问题,但该站点无法加载。例如改变,
proxy_pass http://rtdev; --> proxy_pass https://rtdev;解决了这个问题,但是 nginx 抛出 501 错误。
如果有人能阐明如何解决/调试问题,我将不胜感激。谢谢。
编辑:证书已正确链接。我用几个第三方网站验证了设置,一切似乎都很好。
解答
我找到了原因,这与我的服务器配置无关。
显然,我正在使用的一个库动态注入了一个不安全的脚本。该脚本使用的是 http 而不是 https。
Firefox 和 Chrome 显示该页面包含不安全的脚本,而 Safari 则不给用户任何反馈并将页面显示为不安全。
我不知道该说什么,是称赞苹果过于谨慎还是指责它缺乏视觉反馈。
参考:
找出哪些资源没有通过 HTTPS
https://www.whynopadlock.com/
更多推荐

所有评论(0)