HTTPS 和基本身份验证

信息安全 tls 验证 nginx
2021-08-18 11:25:20

我已经在我的家庭服务器上设置了 NGINX 反向代理,使用来自我的网站“stuff.mydomain.com”的动态 DNS 以及来自letsencrypt的证书。我正在使用基本身份验证来验证用户身份。

当我转到我的域并弹出身份验证框时,chrome 并不表示连接是安全的(我得到“信息或不安全”“i”符号)。如果我登录或单击取消,它会立即变成绿色锁定符号并保持这种状态。

这是它应该工作的方式,还是我搞砸了设置并且正在传输未加密的登录信息?

编辑:当我为 URL 输入 https:// 时,也会发生同样的事情。有任何想法吗?

编辑 2:在使用了 Wireshark 一段时间后,我很确定所有内容实际上都是加密的(我在 URL 栏中检查了 http 和 https)。我仍然不知道是什么导致 chrome 将其显示为不安全。

在此处输入图像描述

2个回答

响应较晚,但这是 Chrome 中长期存在的错误。Chrome 在显示基本身份验证对话框之前不会更新地址栏中的安全指示器(尽管它确实正确验证了安全性,因此正确标记了过期的证书)。

https://bugs.chromium.org/p/chromium/issues/detail?id=700748 https://bugs.chromium.org/p/chromium/issues/detail?id=667021(另见395050)

身份验证请求可能发生在重定向之前。如果您输入您的凭据,它们可能会以明文形式发送,之后您将被重定向到 HTTPS。

您可以轻松地检查您是否通过例如wireshark 发送未加密的凭据。

如果你这样做了,你应该在你的浏览器中输入 HTTPS(不是最好的方法,你可能会忘记),使用 HSTS 自动强制 HTTPS,或者重新配置你的服务器(例如阻止所有通过 HTTP 的访问)。