目标是外部用户可以通过 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,并做了以下更改/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 时,没有任何更改生效。
当我添加 SSLProxyEngine 时,apache 无法启动。
我在代理错误日志中收到以下内容:
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
答案1
事实证明,ssl.conf 中已经有一个 vhost 覆盖了我的设置。小学生的错误。