使用 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 错误。

如果有人能告诉我如何解决/调试这个问题,我将不胜感激。谢谢。

编辑:证书链接正确。我通过几个第三方网站验证了设置,一切似乎都很好。

答案1

我找到了原因,这与我的服务器配置无关。

显然,我使用的某个库动态注入了一个不安全的脚本。该脚本使用了http不是https

Firefox 和 Chrome 会指示该页面包含不安全的脚本,而 Safari 则不会向用户提供任何反馈并将该页面显示为不安全。

我不知道该说些什么,是该赞扬苹果的过度谨慎,还是该责怪它缺乏视觉反馈。

参考:

https://stackoverflow.com/questions/3292697/find-out-what-resources-are-not-going-over-https

https://www.whynopadlock.com/

答案2

ssl_certificate xxxxxxxx/xxxxxxxxx.crt;

包含服务器证书以及所需的中间图表(通常由您的 CA 随证书提供)?

如果链不完整,可能会导致某些浏览器(尤其是智能手机)出现问题。

相关内容