Apache, Tomcat: Como usar vários certificados SSL em um único servidor

1

Estou trabalhando em nosso servidor Debian X64, que é o ponto de extremidade de 5 nomes de domínio. Um dos nomes de domínio é utilizado por um projeto da Web executado no servidor da Web Apache. Os 4 domínios restantes têm aplicativos da Web individuais em execução em uma única instância do Apache Tomcat. Atualmente, estou usando mod_proxy para redirecionar solicitações para aplicativos da Web apropriados.

Infelizmente, essa configuração se torna inútil assim que o HTTPS entra em cena. Não consigo instalar um único certificado https que tenha todos os domínios nele. Tal certificado é fornecido por LetsEncrypt .

Após a instalação do certificado, qualquer pedido será redirecionado apenas para um único domínio do Tomcat. No começo, não consegui entender esse comportamento, mas depois de verificar o certificado, vi que o domínio para o qual ele estava redirecionando era o primeiro dos vários domínios no certificado. Não sei por que o URL não é processado, mas esse é o comportamento atual. Eu estava pensando em usar mod_jk em vez de mod_proxy para essa tarefa, mas não sei se é exatamente isso que eu preciso.

Gostaria de saber como criar uma configuração, onde posso instalar certificados SSL individuais para cada domínio. Veja uma visão geral básica de como a configuração está atualmente:

Apache2workers.properties:

worker.list=worker_app1worker.worker_app1.type=lbworker.worker_app1.balance_workers=app1_instance1worker.worker_app1.sticky_session=trueworker.worker_app1.sticky_session_force=falseworker.worker_app1.method=busynessworker.app1_instance1.type=ajp13worker.app1_instance1.host=127.0.0.1worker.app1_instance1.port=8010worker.app1_instance1.host=localhostworker.app1_instance1.lbfactor=1worker.app1_instance1.socket_timeout=40worker.app1_instance1.socket_keepalive=trueworker.app1_instance1.reply_timeout=30000

Apachehabilitadoparasites/000-default:

<VirtualHost*:80>ServerAdminwebmaster@localhostServerNamewww.domain4.de.comServerAliasdomain4.de.comDocumentRoot/var/www<Directory/>OptionsFollowSymLinksAllowOverrideNone</Directory><Directory/var/www/>OptionsIndexesFollowSymLinksMultiViewsAllowOverrideAllOrderallow,denyallowfromall</Directory>ScriptAlias/cgi-bin//usr/lib/cgi-bin/<Directory"/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Listen 443
<VirtualHost *:443>
ServerName www.domain1.de
ServerAlias domain1.de
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/www.domain1.de/tool.crt
SSLCertificateKeyFile /etc/letsencrypt/live/www.domain1.de/private.key
ProxyRequests off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
#ErrorDocument 503 /maintenance.html
# ErrorDocument 404 /maintenance.html
# ErrorDocument 500 /maintenance.html

#ProxyPass /maintenance.html !
#ProxyPass / http://localhost:8080/
#ProxyPassReverse / http://localhost:8080/

<Location / >
Order allow,deny
Allow from all
</Location>
</VirtualHost>

<VirtualHost *:80>
ServerName www.domain3.de
ServerAlias domain3.de
ProxyRequests off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
#ErrorDocument 503 /maintenance.html
# ErrorDocument 404 /maintenance.html
# ErrorDocument 500 /maintenance.html

#ProxyPass /maintenance.html !
#ProxyPass / http://localhost:8080/
#ProxyPassReverse / http://localhost:8080/

<Location / >
Order allow,deny
Allow from all
</Location>
</VirtualHost>


<VirtualHost *:80>
ServerName www.domain3.de
ServerAlias domain3.de
ProxyRequests off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ErrorDocument 503 /maintenance.html
 ErrorDocument 404 /maintenance.html
 ErrorDocument 500 /maintenance.html

ProxyPass /maintenance.html !

ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

<Location / >
Order allow,deny
Allow from all
</Location>
</VirtualHost>

<VirtualHost *:80>
ServerName www.domain2.de
ServerAlias domain2.de
ProxyRequests off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ErrorDocument 503 /maintenance.html
 ErrorDocument 404 /maintenance.html
 ErrorDocument 500 /maintenance.html

ProxyPass /maintenance.html !

ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

<Location / >
Order allow,deny
Allow from all
</Location>
</VirtualHost>

<VirtualHost *:80>
ServerName www.domain5.de
ServerAlias domain5.de
ProxyRequests off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ErrorDocument 503 /maintenance.html
 ErrorDocument 404 /maintenance.html
 ErrorDocument 500 /maintenance.html

ProxyPass /maintenance.html !

ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

<Location / >
Order allow,deny
Allow from all
</Location>
</VirtualHost>

Se houver qualquer outra informação necessária, por favor me avise. Obrigado pelo seu tempo.

Editar

Eu reimplantei todas as aplicações web para trabalhar com https, especificando na configuração de segurança do Spring. E eu tentei a configuração abaixo. por favor note para cada VirtualHost eu também tentei ProxyPass com localhost: 8080. Atualmente, apenas o aplicativo do servidor da Web é carregado, nada mais.

Alterei o padrão 000 da seguinte forma:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName www.domain4.de.com
        ServerAlias domain4.de.com
        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                 Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Listen 443
<VirtualHost *:443>
ServerName www.domain1.de
ServerAlias domain1.de
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/www.domain1.de/tool.crt
SSLCertificateKeyFile /etc/letsencrypt/live/www.domain1.de/private.key
ProxyRequests off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
#ErrorDocument 503 /maintenance.html
# ErrorDocument 404 /maintenance.html
# ErrorDocument 500 /maintenance.html

#ProxyPass /maintenance.html !
#ProxyPass / http://localhost:8443/
#ProxyPassReverse / http://localhost:8443/

<Location / >
Order allow,deny
Allow from all
</Location>
</VirtualHost>

<VirtualHost *:443>
ServerName www.domain3.de
ServerAlias domain3.de
ProxyRequests off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
#ErrorDocument 503 /maintenance.html
# ErrorDocument 404 /maintenance.html
# ErrorDocument 500 /maintenance.html

#ProxyPass /maintenance.html !
#ProxyPass / http://localhost:8443/
#ProxyPassReverse / http://localhost:8443/

<Location / >
Order allow,deny
Allow from all
</Location>
</VirtualHost>


<VirtualHost *:443>
ServerName www.domain3.de
ServerAlias domain3.de
ProxyRequests off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ErrorDocument 503 /maintenance.html
 ErrorDocument 404 /maintenance.html
 ErrorDocument 500 /maintenance.html

ProxyPass /maintenance.html !

ProxyPass / http://localhost:8443/
ProxyPassReverse / http://localhost:8443/

<Location / >
Order allow,deny
Allow from all
</Location>
</VirtualHost>

<VirtualHost *:443>
ServerName www.domain2.de
ServerAlias domain2.de
ProxyRequests off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ErrorDocument 503 /maintenance.html
 ErrorDocument 404 /maintenance.html
 ErrorDocument 500 /maintenance.html

ProxyPass /maintenance.html !

ProxyPass / http://localhost:8443/
ProxyPassReverse / http://localhost:8443/

<Location / >
Order allow,deny
Allow from all
</Location>
</VirtualHost>

<VirtualHost *:443>
ServerName www.domain5.de
ServerAlias domain5.de
ProxyRequests off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ErrorDocument 503 /maintenance.html
 ErrorDocument 404 /maintenance.html
 ErrorDocument 500 /maintenance.html

ProxyPass /maintenance.html !

ProxyPass / http://localhost:8443/
ProxyPassReverse / http://localhost:8443/

<Location / >
Order allow,deny
Allow from all
</Location>
</VirtualHost>
    
por We are Borg 15.04.2016 / 09:47

0 respostas