내 서버의 기본 인증이 보호되고 있는지 확실하지 않습니다.

내 서버의 기본 인증이 보호되고 있는지 확실하지 않습니다.

정말 멍청한 질문일 수도 있지만 이 질문이 괜찮은지 확인해야 했습니다.

기본 인증으로 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 모두에서 이 동작을 볼 수 있었습니다. 아마도 이는 페이지 로드가 완료되기 전에 브라우저가 자격 증명을 요청했기 때문일까요? 브라우저 개발자에게 질문입니다.

관련 정보