2016-03-23 47 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

欢迎您,请投票回答。 –