我有一个在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 谷歌浏览器 苹果浏览器 修改我的服务器块中的一些内容可以解决问题,但该站点无法加载。例如,改变,
proxy_pass http://rtdev; --> proxy_pass https://rtdev;
解决了这个问题,但是nginx抛出501错误。
如果有人能说明如何解决/调试问题,我将不胜感激。感谢。
编辑:证书链接正确。我用几个第三方网站验证了设置,一切似乎都很好。
答案 0 :(得分:2)
我弄明白了原因,它与我的服务器配置无关。
显然,我正在使用的一个库动态注入了一个不安全的脚本。该脚本使用 http 而非 https 。
Firefox和Chrome指示该页面包含不安全的脚本,另一方面,Safari不向用户提供任何反馈,并将页面显示为不安全。
我不知道该说些什么,是否赞扬Apple过于谨慎,或因任何缺乏视觉反馈而责怪它。
<强>参考文献:强>