通过 IIS 反向代理使用 https 的 4D 应用程序无法正常工作

通过 IIS 反向代理使用 https 的 4D 应用程序无法正常工作

我正在尝试为在 Windows Server 2012 R2 上运行的 4D 应用程序设置一个简单的 http 和 https 反向代理。我让 http 工作,但不能使用 https。当我打开公共防火墙并直接访问 4D 应用程序时,https 工作正常。有人能提示我我做错了什么或者我需要做什么才能让 https 工作吗?

这是我所做的:我打开主服务器的 ARR 反向代理设置表单并输入以下值:启用代理直通保持活动超时 = 120 X-Forwarded-For 包含来自客户端 IP 的 TCP 端口内存缓存持续时间 = 60 秒启用磁盘缓存忽略查询字符串响应缓冲区 = 4096 kb 阈值 = 256 kb 使用 Url Rewrite 检查传入请求反向代理 = DNSName:LocalHttpPort

保存 ARR 反向代理设置表单后,会自动创建两个 URL 重写规则“ARR_server_proxy”和“ARR_server_proxy_SSL”。我所需要做的就是填写重新编码的 URL 字段。对于 http 规则,我输入:“http://DNSName:LocalHttpPort/{R0}”对于 https 规则,我输入:“https://DNSName:LocalSSLPort/{R0}”

正如我上面提到的,这些设置适用于 http。当我尝试 https 时,浏览器超时。我在某处读到我需要将为 4D 应用程序设置的 SSL 证书 + 私钥导入到 IIS。我这样做了,但我不知道如何将其绑定到主服务器?如果我这样做,我是否需要设置“启用 SSL 卸载”?

我还在其他地方读到我应该在 ARR 反向代理设置表单的反向代理字段中仅输入 DNSName。我输入了 DNSName:LocalHttpPort。当我仅输入 DNSName 时,浏览器超时。在阅读了数十篇关于此主题的文章后,我越来越困惑。

这是重写规则的 XML:(添加于 2021 年 8 月 19 日 14:00 MEZ)

<proxy enabled="true" />  
 <rewrite>  
     <globalRules>  
         <rule name="ARR_server_proxy_SSL" enabled="true" patternSyntax="Wildcard" stopProcessing="true">  
             <match url="*" />  
             <conditions>  
                 <add input="{HTTPS}" pattern="on" />  
             </conditions>  
             <action type="Rewrite" url="https://h25XXXXX.stratoserver.net:4443/{R:0}" />  
         </rule>  
         <rule name="ARR_server_proxy" enabled="true" patternSyntax="Wildcard" stopProcessing="true">  
             <match url="*" />  
             <action type="Rewrite" url="http://h25XXXXX.stratoserver.net:4000/{R:0}" />  
             <conditions>  
                 <add input="{HTTPS}" pattern="on" negate="true" />  
             </conditions>  
             <serverVariables>  
             </serverVariables>  
         </rule>  
     </globalRules>  
     <allowedServerVariables>  
         <add name="{HTTPS}" />  
     </allowedServerVariables>  
 </rewrite>  

相关内容