Поддомен SSL httpd VirtualHost для Tomcat

У меня есть несколько приложений на сервере 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?

Спасибо

1
задан 4 October 2016 в 18:40
1 ответ

Практическое правило - всегда использовать NameVirtualHost перед каждым VirtualHost , если вы не знаете, что делаете. Базовый шаблон для каждого порта SSL (например, 443):

Listen 443
SSLInsecureRenegotiation off

NameVirtualHost  *:443
<VirtualHost *:443>
...

Кроме того, вы правильно перенаправили на http: // localhost: 8080 / app1 /

0
ответ дан 4 December 2019 в 05:47

Теги

Похожие вопросы