目标是外部用户可以通过 HTTPS 连接,通过 Apache 上的基本身份验证,然后查看代理 tomcat 站点。
我已经使用基本身份验证设置了一个反向代理到在同一台机器上运行在不同端口上的 tomcat 服务器:(/etc/httpd/conf.d/vhost.conf)
NameVirtualHost *:80
<VirtualHost *:80>
ServerName sub.domainx.co.uk
ErrorLog "/var/log/proxy/domainx_prox_error_log"
CustomLog "/var/log/proxy/domainx_prox_access_log" common
ProxyRequests Off
<Proxy *>
Order deny,allow
Deny from all
Allow from all
</Proxy>
<Location />
AuthType Basic
AuthName "Proxy Auth"
AuthUserFile /var/www/syzygy-auth/CONFLUENCE/.htpasswd
Require user ukuser
Satisfy any
Deny from all
Allow from 192.168.0.0/21
</Location>
ProxyPass / http://sub.domainx.co.uk:8090/
ProxyPassReverse / http://sub.domainx.co.uk:8090/
</VirtualHost>
以上工作正常。
然后我开始在 apache 上设置 mod_ssl。
yum -y install mod_ssl
然后我上传了我的通配符 ssl 并对 dollowing 进行了更改/etc/httpd/conf.d/ssl.conf
uncommented:
DocumentRoot "/var/www/html"
uncommented/updated:
ServerName www.server.world:443
SSLCertificateFile /etc/pki/tls/certs/server.crt
SSLCertificateKeyFile /etc/pki/tls/certs/server.key
这些变化似乎产生了预期的效果。
我无法通过 HTTPS 和 HTTP 代理 tomcat 服务器查看 index.html。
当我添加一个相同的虚拟主机但端口更改为 443 时,没有任何更改生效。
当我在 apache 上添加 SSLProxyEngine 时不会启动。
我在代理错误日志中得到以下信息:
Fatal error initialising mod_ssl, exiting. See /var/log/proxy/domainx_prox_error_log for more information
Server should be SSL-aware but has no certificate configured
原来 ssl.conf 中已经有一个虚拟主机覆盖了我的设置。小学生错误。