这可能是一个非常愚蠢的问题,但我必须确保我对此感到满意。
我使用基本身份验证设置了一个 HTTPS 服务器,但是当我连接到身份验证页面时,浏览器告诉我连接不安全,并在我登录后告诉我连接是安全的。我想知道这是否安全,如果没有,我怎样才能使它安全?
配置(NGINX):
server {
listen 80;
server_name sub.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name sub.example.com;
ssl_ceerificate (certpath);
ssl_certificate_key (certkeypath);
ssl_trusted_certificate (anotherpath);
ssl_dhparam (dhparam);
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA25$
ssl_ecdh_curve secp384r1;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block"
location / {
auth_basic 'Nothing to see here';
proxy_pass http://localhost:4000/;
}
}
您的配置看起来不错;这是浏览器行为不端。
您的站点已正确重定向到 https,并且基本身份验证请求已通过 https 发送给您。但是浏览器在弹出对话框之前并没有更新地址栏。有趣的是,我能够在 Chrome 和 Firefox 上看到这种行为。也许这是因为浏览器在页面加载完成之前(从它的角度来看)要求提供凭据?这是浏览器开发人员的问题。