我正在使用的设置涉及一个Apache服务器,它充当tomcat服务器的代理,该服务器为多个Web应用程序提供服务。我已经在apache上启用了相互TLS,我可以成功连接到我的一个tomcat Web应用程序并验证客户端证书。但是,我想更进一步......在我的ssl.conf中,我有一个默认的HTTPS VirtualHost配置,如下所示:
<VirtualHost *:443>
....
SSLEngine on
SSLCertificateFile /path/to/www_yoursite_com.crt
....
#other SSL options...
</VirtualHost>
在我的modproxy.conf中,我有如下配置:
ProxyPass /webApp1 https://localhost:1234/webApp1
ProxyPassReverse /webApp1 https://localhost:1234/webApp1
ProxyPass /webApp2 https://localhost:1234/webApp2
ProxyPassReverse /webApp2 https://localhost:1234/webApp2
其中1234是在tomcat的server.xml文件的连接器元素上配置的https端口。
假设我只想要webT1的mTLS,这个配置的问题是我的浏览器需要客户端证书,即使我正在访问webApp2,换句话说我想只为一个Web应用程序启用mTLS。更好的是,我想为我的Web应用程序中的特定URL启用mTLS(这是否可能?),例如,当有人点击https://myserver.com/webApp1/test/mtlsEndpoint而不是https://myserver.com/webApp1/test/otherEndpoint时,我需要mTLS。
是否可以在我的ssl.conf上使用另一个用于SSL的VirtualHost配置来实现此目的?我明天要测试这个(试图用另一个将mTLS代理到我的webApp1的VirtualHost配置来实现这个)但是我想在这里也应该问一下,以避免反复试验和重新发明轮子这可能比我想的更容易吗?
答案 0 :(得分:0)
是的,您只需要webApp1
和webApp2
的单独SSL指令。可以在Apache中配置SSL指令直到目录级别。