这可能是一个非常愚蠢的问题,但我必须确保我对此没有异议。
我设置了一个具有基本身份验证的 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/;
}
}
答案1
您的配置看起来很好;是浏览器行为不当。
您的网站已正确重定向到 https,并且基本身份验证请求已通过 https 发送给您。但浏览器在弹出对话框之前没有更新地址栏。有趣的是,我在 Chrome 和 Firefox 上都看到了这种行为。也许这是因为浏览器在页面加载完成之前(从它的角度来看)要求输入凭据?这是浏览器开发人员的问题。