2016-03-23 238 views
0

我是新來的web服務器配置,這裏是場景,我們有一個hybris tomcat服務器,它運行在9002的https和9001的http上。我需要使用mod_proxy服務器配置Apache web服務器,該服務器將通過80端口打開https和http。我嘗試爲tomcat https和http站點配置mod_proxy,但該站點僅在http中工作。客戶只允許80端口,任何人都可以幫助我瞭解情況。使用tomcat 7配置mod_proxy apache https服務器https服務器

LoadModule headers_module modules/mod_headers.so 
LoadModule proxy_module modules/mod_proxy.so 
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 
LoadModule proxy_connect_module modules/mod_proxy_connect.so 
LoadModule proxy_http_module modules/mod_proxy_http.so 
LoadModule ssl_module modules/mod_ssl.so 

<VirtualHost *:80> 
DocumentRoot /var/www/html 
ProxyPreserveHost On 
ProxyPass/http://tomcatserver.ip:9001/ 
ProxyPassReverse/http://tomcatserver.ip:9001/ 
</VirtualHost> 

<VirtualHost *:443> 
DocumentRoot /var/www/html 
ProxyPreserveHost On 
ServerName webserver.ip 
SSLEngine on 
SSLProxyEngine On 
ProxyPass/https://tomcatserver.ip:9002/ 
ProxyPassReverse/https://tomcatserver.ip:9002 

SSLCertificateFile /etc/ssl/certs/webserverdomain.crt 
SSLCertificateKeyFile /etc/ssl/certs/webserverdomain.key 

</VirtualHost> 

server.xml配置

<Connector port="${tomcat.http.port}" maxHttpHeaderSize="8192" maxThreads="${tomcat.maxthreads}" protocol="org.apache.coyote.http11.Http11Protocol" executor="hybrisExecutor" enableLookups="false" acceptCount="100" connectionTimeout="20000" URIEncoding="UTF-8" disableUploadTimeout="true" proxyName="webserverdomainname" proxyPort="80" /> /> <Connector port="${tomcat.ssl.port}" maxHttpHeaderSize="8192" maxThreads="150" protocol="org.apache.coyote.http11.Http11Protocol" executor="hybrisExecutor" enableLookups="false" acceptCount="${tomcat.acceptcount}" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" SSLEnabled="true" proxyName="webserverdomainname" proxyPort="443" scheme="https" secure="true" clientAuth="false" sslProtocol = "TLS" keystoreFile="${catalina.home}/lib/keystore" keystorePass="123456"

這裏是tomcat的server.xml文件 謝謝@christopher @Benoit

+1

請發表您的配置。 –

+0

請使用格式化的XML配置編輯您的第一條消息,並解釋當您嘗試訪問站點時通過HTTPS的行爲?記錄任何錯誤(Apache或Hybris)您的瀏覽器說什麼? –

+0

瀏覽器重定向到apache默認測試頁面,ssl_error_log [autoindex:error] [pid 10927] [client tomcat.ip:37152] AH01276:無法提供目錄/ var/www/html /:找不到匹配的DirectoryIndex(index.html) ,以及服務器生成的目錄索引禁止通過Options指令 – rakiarchana

回答

1

這到底是怎麼發生的是SSLProxyEngine正在檢測一個無效的SSL證書,所以你需要明確告訴他不要檢查任何東西!

這種配置適合開發,但不適合生產,在生產中,您應該卸載ssl證書,並通過諸如'RequestHeader set X-Forwarded-Proto'https''等標誌將所有流量發送到http並添加閥門到Tomcat配置

更改您的Apache配置此:

<VirtualHost *:443> 
DocumentRoot /var/www/html 
ProxyPreserveHost On 
ServerName webserver.ip 
SSLEngine on 
SSLProxyEngine On 
SSLProxyVerify none 
SSLProxyCheckPeerCN off 
SSLProxyCheckPeerName off 
SSLProxyCheckPeerExpire off 
ProxyPass/https://tomcatserver.ip:9002/ 
ProxyPassReverse/https://tomcatserver.ip:9002 

SSLCertificateFile /etc/ssl/certs/webserverdomain.crt 
SSLCertificateKeyFile /etc/ssl/certs/webserverdomain.key  
</VirtualHost> 
+0

謝謝,這個配置正在工作 – rakiarchana

+0

歡迎您,請投票回答。 –