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