我正在尝试在通过我的代理服务器的所有 HTTPS 请求上插入标头。
我读到HTTPS 请求标头不能被篡改。
有什么方法可以在 HTTPS 请求上插入标头?
仅当代理是与客户端的 TLS 连接的端点时(即代理解密请求)。否则它实际上根本看不到任何 HTTP 标头,只是包含加密数据的 TCP 会话。
Web 服务器本地的反向代理通常会终止 TLS 连接以提高性能 - Web 服务器可以将更多资源用于服务应用程序,因为它不需要在解密/加密上花费 CPU 周期。
如果您这样做,您的服务器证书必须标识代理服务器,而不是 Web 服务器。否则,客户端将收到有关服务器身份与证书身份不同的警告。
如果您不控制或不信任代理和服务器之间的基础设施,您可以重新加密正在进行的请求。
除非您愿意终止代理上的 SSL 连接,否则您不能。这是 SSL 的主要目标之一。包含标头的数据从客户端加密到服务器。
如果您决定终止/拦截代理上的 SSL 连接,客户端将在其浏览器中收到警告。如果您负责所有客户端的所有浏览器,您将能够安装自定义证书,并且客户端不会再收到警告。