我目前正在设置面向互联网的 IIS 反向代理,它将 HTTP 请求转发到内部 API 服务器。我能够让服务器通过 SSL 处理世界与反向代理之间的连接,以及通过纯 HTTP 运行的反向代理与 API 服务器之间的连接。我尝试将 API 服务器设置为使用自签名证书在 HTTPS 上运行,但是当我像以前一样尝试通过代理访问它时,出现了 502 Bad Gateway 错误。我猜测问题出在自签名证书上,因为:反向代理服务器通过其内部 IP 地址访问 API,而不是自签名证书上的名称?
另外 - 我想要启用还是禁用 SSL 卸载?如果禁用,代理会尝试将 API 的证书还是自己的证书传递给客户端?会有两个单独的 SSL 连接还是只有一个?
非常感谢您的帮助!
谢谢!
答案1
当反向代理必须使用 HTTPS 将请求转发到后端服务器时,这与它本身作为后端的客户端并没有太大区别。如果您在反向代理服务器上打开浏览器并以与反向代理相同的方式向后端发送 Web 请求,您也会看到来自浏览器的证书警告。一旦证书警告得到更正(确保主机与证书的 CN 或其主题备用名称之一匹配,有效的发件人和收件人正确,并且证书可信),您很可能不会再看到这些 502 错误,前提是它们是由 SSL 握手引起的。
代理服务器无法转发 API 服务器的证书,因为它没有其私钥来成功执行 SSL 握手。