将IBM HTTP Server配置为反向代理,仅使用SSL作为代理

3phpmpom  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(296)

This SO thread似乎很相似,但没有回答我的问题)
我有一个负载平衡器侦听https://loadbalancerurl:443/,它终止SSL并将请求转发到端口80上的IHS(IBM HTTP服务器)。我需要将IHS配置为反向代理,以便将请求转发到https://targeturl:443/

浏览器--443--〉负载平衡器--80--〉IHS--443--〉目标

我们需要在IHS上这样做的原因是,在该服务器上,我们可以根据需要直接快速地访问以更改目标URL,而负载均衡器则不在我们的控制范围内。
这意味着,我需要在IHS中激活SSL,但只针对对targeturl的传出请求,而不针对传入请求。
this from IBMthis blog post等页面假定SSL是传入和传出的。
下面是httpd.conf文件的相关代码块:

LoadModule ibm_ssl_module modules/mod_ibm_ssl.so
SSLProxyEngine on
<VirtualHost *:80>
  # ServerName webserverhostname # not needed so far
  SSLEnable # without this i get "SSL0263W: SSL Connection attempted when SSL did not initialize."
  KeyFile store.kdb # without this i get "SSL0170E: GSK could not initialize, no keyfile specified."
  SSLStashFile store.sth
  ProxyPass / https://targeturl/
  ProxyPassReverse / https://targeturl/
</VirtualHost>
SSLDisable

其中store.kdb包含targeturl的CA证书,如SO thread中所示
但是,服务器会不断地显示以下错误消息:

SSL0227E: SSL Handshake Failed, Specified label could not be found in the key file, or the specified label is not a 'personal certificate' (no private key). Label='(null)'

据我所知,这意味着IHS无法处理传入的https流量,这是不应该发生的。这不应该发生,因为<VirtualHost *:80>指定端口80,也因为任何到达IHS的流量都有SSL被负载平衡器终止。
我是否误解了错误消息?如果没有,我如何才能让这个工作?
编辑以显示工作溶液:

LoadModule ibm_ssl_module modules/mod_ibm_ssl.so
SSLProxyEngine on
<VirtualHost *:80>
  # ServerName webserverhostname # not needed so far
  # SSLEnable # this would activate SSL for incoming traffic
  KeyFile store.kdb # this contains the CA certificates of the target server
  # SSLStashFile store.sth # would only be needed for incoming SSL
  ProxyPass / https://targeturl/
  ProxyPassReverse / https://targeturl/
</VirtualHost>
# SSLDisable
nkcskrwz

nkcskrwz1#

SSLEnable不应出现在实际上不处理入站SSL的虚拟主机中。
SSLStashFile也是不需要的。它的名称很不幸。
您应该深入研究配置中没有这两项的error_log条目。很可能有一个早期的SSL错误不会导致启动失败。即使没有前端SSL,唯一必要的配置只是:

SSLProxyEngine on
ProxyPass / https://example.com/
KeyFile /path/to/key.kdb

相关问题