Como posso configurar um servidor web CentOS 7 para exibir somente conteúdo SSL criptografado de war arquivos, com tomcat executando atrás de um servidor proxy?
Eu imagino que isso envolva usar firewalld , https e tomcat . E esse https é um wrapper para httpd . Atualmente, war arquivos são executados perfeitamente em tomcat quando eu exponho tomcat na porta 8080. Mas quero bloquear todo o acesso externo à porta 8080. Esta pergunta é sobre como agrupar tomcat acima de um SSL -encrypted proxy server .
Aqui está o que eu tenho até agora.
O público zone em firewalld é:
[root@xxx-xx-xxx-xx conf]# firewall-cmd --list-all
public (default, active)
interfaces: enp3s0
sources:
services: https ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
/usr/lib/firewalld/services/https.xml é assim:
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Secure WWW (HTTPS)</short>
<description>HTTPS is a modified HTTP used to serve Web pages when security is important. Examples are sites that require logins like stores or web mail. This option is not required for viewing pages locally or developing Web pages. You need the httpd package installed for this option to be useful.</description>
<port protocol="tcp" port="443"/>
</service>
Meu /etc/httpd/conf/httpd.conf pode estar pronto clicando em este link . Observe que eu excluí muitas coisas relacionadas a permissões de arquivos / diretórios porque quero que httpd sirva como proxy para tomcat . Eu também adicionei uma tag virtualhost . Preciso adicionar algo em httpd.conf ? Além disso, httpd será chamado automaticamente porque eu adicionei https ao firewalld public zone ?
Meu /opt/tomcat/conf/server.xml pode ser lido em este link .
EDITAR:
A tentativa de reiniciar o httpd falhou. Aqui estão os resultados:
[[email protected] ~]# systemctl restart httpd.service
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.
[[email protected] ~]# systemctl status httpd.service -l
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: failed (Result: exit-code) since Thu 2014-12-11 15:38:00 EST; 59s ago
Process: 31036 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
Process: 31034 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 31034 (code=exited, status=1/FAILURE)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
Dec 11 15:38:00 server.ip.address.static.servdns.com httpd[31034]: AH00526: Syntax error on line 58 of /etc/httpd/conf/httpd.conf:
Dec 11 15:38:00 server.ip.address.static.servdns.com httpd[31034]: Invalid command '...///', perhaps misspelled or defined by a module not included in the server configuration
Dec 11 15:38:00 server.ip.address.static.servdns.com systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Dec 11 15:38:00 server.ip.address.static.servdns.com systemd[1]: Failed to start The Apache HTTP Server.
Dec 11 15:38:00 server.ip.address.static.servdns.com systemd[1]: Unit httpd.service entered failed state.
EDIT # 2:
Alterei a tag virtualhost , adicionei um arquivo index.html simples em /www/example1/index.html e, em seguida, adicionei uma tag de documento a httpd.conf da seguinte forma:
<VirtualHost *:443>
DocumentRoot /www/example1/
SSLEngine on
SSLProxyEngine on
SSLCertificateFile /etc/pki/tls/certs/some.crt
SSLCertificateChainFile /etc/pki/tls/certs/bundle.crt
SSLCertificateKeyFile /etc/pki/tls/private/some.key
# ProxyPass / http://local_host:8080/
# ProxyPassReverse / http://local_host:8080/
</VirtualHost>
<Directory "/www/example1/">
Options None
AllowOverride None
allow from all
</Directory>
Mas agora digitar https://server.ip.address nos resultados do navegador em Unable to connect. Firefox can't establish a connection to the server at server.ip.address