У меня есть несколько приложений под сервером Tomcat. Поэтому мне нужен поддомен для каждого приложения. Итак, если пользователь хочет получить доступ к приложению, он должен поставить https://app1.domain.com... для доступа к приложению Tomcat domain.com/app1/, domain.com/app2/ каждый.
Я успешно настроил apache с подстановочным сертификатом для использования SSL. Но не перенаправления при доступе к поддомену для каждого приложения. Просто получаю ошибку ERR_TOO_MANY_REDIRECTS.
Вот файл ssl.conf:
<VirtualHost 10.0.0.1:443>
ServerAdmin support@domain.com
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 при перенаправлении, HTTPS, а не только HTTP?
Спасибо
Практическое правило - всегда использовать NameVirtualHost
перед каждым VirtualHost
, если вы не знаете, что делаете. Базовый шаблон для каждого порта SSL (например, 443):
Listen 443
SSLInsecureRenegotiation off
NameVirtualHost *:443
<VirtualHost *:443>
...
Кроме того, вы правильно перенаправили на http: // локальный: 8080 / приложение1 /