これは本当に愚かな質問かもしれませんが、私はこれで大丈夫かどうかを確認する必要がありました。
基本認証を使用して 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 の両方で確認できました。おそらくこれは、ブラウザが (ブラウザの観点から) ページの読み込みが完了する前に資格情報を要求したためでしょうか? これはブラウザ開発者への質問です。