通过URL和加密传递的HTTP基本身份验证凭据

我有一个关于HTTPS和HTTP身份验证凭证的问题。

假设我用HTTP认证保护一个URL:

<Directory /var/www/webcallback>
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /var/www/passwd/passwords
Require user gooduser
</Directory>

然后,我通过HTTPS从远程系统访问该URL,在URL中传递凭据:

https://gooduser:secretpassword@www.example.com/webcallback?foo=bar

用户名和密码是否会自动SSL加密?get和post也是如此吗?我很难找到一个可靠的消息来源。

495826 次浏览

用户名和密码是否会自动SSL加密?get和post也是如此吗

是的,是的,是的。

当使用SSL时,整个通信(如果主机名的IP尚未缓存,则仅用于DNS查找)都是加密的。

不一定是真的。它将被加密,但它仍然在日志纯文本

是的,它将被加密。

如果你检查一下幕后发生了什么,你就会明白这一点。

  1. 浏览器或应用程序将首先分解URL,并尝试使用DNS查询获取主机的IP。即:将发出DNS请求以查找域的IP地址(www.example.com)。请注意,其他信息将不会通过此请求发送。
  2. 浏览器或应用程序将与从DNS请求接收到的IP地址启动SSL连接。证书将交换,这发生在传输级别。此时不会传输任何应用程序级别的信息。请记住,基本身份验证是HTTP的一部分,而HTTP是应用程序级协议。不是传输层任务。
  3. 在建立SSL连接之后,现在将必要的数据传递到服务器。ie:路径或URL,参数和基本认证用户名和密码。