CentOS 7의 war 파일용 SSL 암호화 프록시 서버

CentOS 7의 war 파일용 SSL 암호화 프록시 서버

파일에서 암호화된 콘텐츠만 제공하고 프록시 서버 뒤에서 실행되도록 CentOS 7웹 서버를 구성하려면 어떻게 해야 합니까 ?SSLwartomcat

나는 이것이 firewalld, https및 를 사용하는 것을 포함한다고 생각합니다 tomcat. 이것은 https의 래퍼입니다 httpd. 현재 포트 8080에 노출하면 war파일이 완벽하게 실행됩니다. 하지만 포트 8080에 대한 모든 외부 액세스를 차단하고 싶습니다. 이 질문은 -encrypted 뒤에 래핑하는 방법에 관한 것입니다. tomcattomcattomcatSSLproxy server

이것이 내가 지금까지 가지고 있는 것입니다.

대중 zonefirewalld:

[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자동으로 호출되나요 ?httpsfirewalldzone

내 것은 /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에서는 단어로 게시할 수 없습니다!

나머지 구성에 따라 약간의 조정이 필요할 수 있지만 위의 내용을 시작하면 됩니다.

관련 정보