【发布时间】:2014-10-01 18:30:27
【问题描述】:
在 Google App Engine 中,当 isSecure() 返回 false 时,ServletRequest 上的 getScheme() 是否可能返回“https”?”
这是this 的后续问题。
【问题讨论】:
标签: java google-app-engine servlets
在 Google App Engine 中,当 isSecure() 返回 false 时,ServletRequest 上的 getScheme() 是否可能返回“https”?”
这是this 的后续问题。
【问题讨论】:
标签: java google-app-engine servlets
我认为这个问题缺少您在另一个问题中添加的一些上下文,因为您的担忧似乎是证书错误,我认为适当的答案是:
是 getScheme() 即使在证书错误的情况下也会返回 https,但只有(当然)客户端选择接受有错误(不受信任、过期等)的服务器证书在 SSL 握手期间。例如,客户端可能使用了 curl -k 标志。
在您最初的问题中,您提到:
[如果 getScheme() 返回 "https"] 是否保证 HTTPS 连接已经建立并且没有证书错误?
我认为您的问题存在一个有缺陷的假设,即证书错误意味着未建立 HTTPS 连接。在证书错误的情况下(不受信任的颁发者、过期的证书等),有两种可能:
curl -k)。在这种情况下,将建立一个 https 连接并且请求将继续。您的应用当然会看到 getScheme() 返回的“https”,因为建立了 https 连接。但从客户端的角度来看,它可能不是一个值得信赖的连接。【讨论】: