파일에서 암호화된 콘텐츠만 제공하고 프록시 서버 뒤에서 실행되도록 CentOS 7
웹 서버를 구성하려면 어떻게 해야 합니까 ?SSL
war
tomcat
나는 이것이 firewalld
, https
및 를 사용하는 것을 포함한다고 생각합니다 tomcat
. 이것은 https
의 래퍼입니다 httpd
. 현재 포트 8080에 노출하면 war
파일이 완벽하게 실행됩니다. 하지만 포트 8080에 대한 모든 외부 액세스를 차단하고 싶습니다. 이 질문은 -encrypted 뒤에 래핑하는 방법에 관한 것입니다. tomcat
tomcat
tomcat
SSL
proxy server
이것이 내가 지금까지 가지고 있는 것입니다.
대중 zone
은 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
다음과 같습니다.
<?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>
/etc/httpd/conf/httpd.conf
클릭 한 번으로 내 준비가 완료될 수 있습니다.이 링크. httpd
나는 tomcat
단지 virtualhost
. 추가해야 할 것이 있나요 httpd.conf
? 그리고, 공개로 추가했기 때문에 httpd
자동으로 호출되나요 ?https
firewalld
zone
내 것은 /opt/tomcat/conf/server.xml
읽을 수 있어요이 링크.
편집하다:
httpd를 다시 시작하려는 시도가 실패했습니다. 결과는 다음과 같습니다.
[[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.
편집 #2:
virtualhost
태그를 변경하고 index.html
간단한 파일을 추가한 다음 다음 과 같은 /www/example1/index.html
문서 태그를 추가했습니다 .httpd.conf
<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>
하지만 이제 https://server.ip.address
브라우저에 결과를 입력해 보세요.Unable to connect. Firefox can't establish a connection to the server at server.ip.address
답변1
그 소리로 보아 당신은 하나를 쫓고 있는 것 같군요 reverse proxy
. 빠른 Google은 가능한 다양한 솔루션을 보여줍니다.
쉬운 옵션은 apache
설치된 웹 서버를 프록시로 사용하는 것입니다.
이렇게 하려면 다음을 변경 httpd.conf
하고 추가해야 합니다.
<VirtualHost your.domain.name:443>
SSLEngine on
SSLProxyEngine on
SSLCertificateFile /etc/pki/tls/certs/your_public.crt
SSLCertificateChainFile /etc/pki/tls/certs/bundle.crt
SSLCertificateKeyFile /etc/pki/tls/private/your_private.key
ProxyPass / http://ip.addr:8080/myappname
ProxyPassReverse / http://ip.addr:8080/myappname
</VirtualHost>
노트:위의 밑줄을 제거하세요 local_host
. SE에서는 단어로 게시할 수 없습니다!
나머지 구성에 따라 약간의 조정이 필요할 수 있지만 위의 내용을 시작하면 됩니다.