我有几个应用程序在Tomcat服务器下。 所以我想为每个应用程序的子域。 因此,如果用户想要访问应用程序,必须将https://app1.domain.com …分别访问Tomcat应用程序domain.com/app1/,domain.com/app2/。
我成功地configuration了apache和通配符证书来使用SSL。 但是,当访问每个应用程序的子域时不会redirect。 刚刚得到一个ERR_TOO_MANY_REDIRECTS错误。
这里是ssl.conf文件:
<VirtualHost 10.0.0.1:443> ServerAdmin [email protected] DocumentRoot "/var/www/html" ServerName www.domain.com ServerAlias domain.com ErrorLog logs/ssl_error.log DirectoryIndex index.html SSLEngine on SSLProtocol All +TLSv1.2 -SSLv2 -SSLv3 SSLCertificateFile /opt/certs/domain.com.crt SSLCertificateKeyFile /opt/certs/domain.com.key SSLCertificateChainFile /opt/certs/domain.com.intermediate.crt <Directory "/var/www/html"> Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost 10.0.0.1:443> DocumentRoot "/var/www/html/app1" ServerName app1.domain.com UseCanonicalName Off DirectoryIndex index.html ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://localhost:8080/app1/ ProxyPassReverse / http://localhost:8080/app1/ SSLEngine On SSLProtocol All +TLSv1.2 -SSLv2 -SSLv3 SSLCertificateFile /opt/certs/domain.com.crt SSLCertificateKeyFile /opt/certs/domain.com.key SSLCertificateChainFile /opt/certs/domain.com.intermediate.crt ErrorLog /var/log/httpd/ssl_app1_error.log LogLevel error <Directory "/var/www/html/app1"> Order allow,deny Allow from all Options None </Directory> </VirtualHost>
任何想法? 以及如何保持SSL在redirect上运行,HTTPS不只是HTTP?
谢谢
经验法则是在每个VirtualHost之前总是使用NameVirtualHost ,除非你知道你在做什么。 每个SSL端口(例如443)的基本模板是:
Listen 443 SSLInsecureRenegotiation off NameVirtualHost *:443 <VirtualHost *:443> ...
另外,您在redirect到http:// localhost:8080 / app1 /