在Google App Engine中,当isSecure()返回false时,ServletRequest上的getScheme()可能会返回“https”吗?“
这是this的后续问题。
答案 0 :(得分:2)
我认为这个问题遗漏了你在另一个问题上添加的一些上下文,因为你的担心似乎是证书错误,我认为适当的答案是:
是即使出现证书错误,getScheme()也会返回https,但只有(当然)客户选择接受有错误的服务器证书(不受信任,过期等)在SSL握手期间。例如,客户端可能使用了curl -k
标志。
在您的原始问题中,您提到:
[如果getScheme()返回“https”] 是否保证已建立HTTPS连接并且没有证书错误?
我认为您的问题存在一个有缺陷的假设,即证书错误意味着未建立HTTPS连接。在证书错误(不受信任的发行者,过期的证书等)的情况下,有两种可能性:
curl -k
)。在这种情况下,建立https连接并继续请求。您的应用程序当然会看到getScheme()返回的“https”,因为建立了https连接 。从客户的角度来看,它可能不是一个值得信赖的连接。