- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在配置 Apache、Tomcat 和 SSL 时遇到问题,情况是这样的:
我有一个 Apache Web 服务器,正常运行和工作(但是,我可以访问这个服务器,只需键入:
https://example.com
另外,在这台主机上,我有一个 Tomcat 在端口 8080 (HTTP) 上运行并且工作正常;我创建了一个迷你网络应用程序,其中的文件位于“测试”目录中,我可以输入:
http://example.com:8080/test
(我知道Apache运行在80端口,Tomcat运行在8080端口)
我想做的是用户可以使用 HTTPS 通过 Apache 访问“测试”(在 Tomcat 上运行),我的意思是:
https://example.com/test
但是当我访问这个链接时出现这个:
当我使用 HTTP 访问时 http://example/test
有效,但我需要它是 HTTPS。
我还在/etc/httpd/conf.d/vhost.conf
中创建了一个文件config,内容是这样的:
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/html
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
SSLProxyEngine on
ProxyPass /test http://xxx.xxx.xxx.xxx:8080/test
ProxyPassReverse /test http://xxx.xxx.xxx.xxx:8080/test
</VirtualHost>
xxx.xxx.xxx.xxx为网站IP。
当我访问网站 https://example.com/
(使用 HTTPS)时,我遇到了这个问题(我在网站中使用了网络应用程序):
我使用证书 Let's Encrypt(在上图中)。
我正在使用 Apache/2.4.33 (Amazon) 和 Tomcat 8.5.29
有谁知道为什么或如何解决这个问题?提前谢谢大家。
日志文件:
访问日志
yyy.yyy.yyy.yyy - - [01/Jul/2018:06:42:29 +0000] "GET /test HTTP/1.1" 301 245 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
::1 - - [01/Jul/2018:06:42:51 +0000] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.4.33 (Amazon) OpenSSL/1.0.2k-fips PHP/7.0.30 (internal dummy connection)"
error_log - 空
ssl_access_log
yyy.yyy.yyy.yyy - - [01/Jul/2018:06:42:29 +0000] "GET /test HTTP/1.1" 404 206
yyy.yyy.yyy.yyy - - [01/Jul/2018:06:42:29 +0000] "GET /test HTTP/1.1" 404 206
yyy.yyy.yyy.yyy - - [01/Jul/2018:06:42:49 +0000] "-" 408 -
yyy.yyy.yyy.yyy - - [01/Jul/2018:06:42:49 +0000] "-" 408 -
yyy.yyy.yyy.yyy - - [01/Jul/2018:06:42:49 +0000] "-" 408 -
yyy.yyy.yyy.yyy - - [01/Jul/2018:06:42:49 +0000] "-" 408 -
ssl_request_log
[01/Jul/2018:06:42:29 +0000] yyy.yyy.yyy.yyy TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 "GET /test HTTP/1.1" 206
[01/Jul/2018:06:42:29 +0000] yyy.yyy.yyy.yyy TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 "GET /test HTTP/1.1" 206
[01/Jul/2018:06:42:49 +0000] yyy.yyy.yyy.yyy TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 "-" -
[01/Jul/2018:06:42:49 +0000] yyy.yyy.yyy.yyy TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 "-" -
[01/Jul/2018:06:42:49 +0000] yyy.yyy.yyy.yyy TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 "-" -
[01/Jul/2018:06:42:49 +0000] yyy.yyy.yyy.yyy TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 "-" -
ssl_error_log - 空
yyy.yyy.yyy.yyy = 我机器的IP
最佳答案
代码有4个问题
首先端口有问题。Https 在端口 443
上工作,http 在 端口 80
上工作。 p>
<VirtualHost *:443>
ServerName www.example.com
DocumentRoot /var/www/html
###Remove this redirection line to move it in separate virtual host listening to port 80
Redirect permanent / https://example.com/
SSLProxyEngine on
ProxyPass /test http://xxx.xxx.xxx.xxx:8080/test
ProxyPassReverse /test http://xxx.xxx.xxx.xxx:8080/test
</VirtualHost>
其次:没有打开SSLProxyEngine
,以便代理传递和代理反向传递适用于https 连接。
第三:去掉本虚拟主机的https重定向规则到新虚拟主机,需要新建一个80端口的新虚拟主机,其中应该有重定向规则,其中所有 http 连接永久重定向到 https。
Redirect permanent / https://example.com/
第四:下面还要加上所有的虚拟主机
ServerName example.com
ServerAlias www.example.com
关于Apache、Tomcat 和 SSL : ProxyPass and ProxyPassReverse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51120325/
我想在Docker Swarm中将apache / tomcat ProxyPass配置更改为traefik / tomcat配置。我尝试了一些在这里解释的https://docs.traefik.i
我们想要做的是使用 apache (2.4) 作为 tomcat 的反向代理,我们想使用 mod_proxy我已经进行了以下配置: Require all granted Proxy
伙计们, 我们正在尝试为以下场景设置 Apache 反向代理: 传入请求的格式为 http://foo.com/APP/v1/main.html 对于某些服务器,URL 将引用不同的版本,例如 htt
我一直在从事一个使用 websockets 的 Perl Mojolicious 项目。我想在运行 apache 的共享服务器上启动它,并使用 proxyPass 和 proxyPassReverse
我有通过 IBM IHS 访问的 Web 应用程序,该应用程序经过 Tivoli ldap 验证。在此应用程序中,我必须单击应由另一个 Apache 服务器提供服务的链接,但我必须通过请求传递用户名,
在我的家庭网络上,我有一个 Web 服务器和一个 DNS 服务器。我有各种其他应用程序服务器,我已为其添加了重定向,因此我只需访问 myapplication.domain.com 或 www.dom
我一直在尝试配置我的 Java 应用程序,以便我可以使用 jQuery.post() 向它发送发布数据。在我的 httpd.conf 中,我尝试使用 ProxyPassReverse 进行设置,如下所
例如httpd.conf中有如下配置: ProxyPass app http://somehost:someport/App_1 ProxyPassReverse app http://s
我的后端 Tomcat 服务器发送带有相对路径的 302 重定向。 HTTP/1.1 302 Date: Wed, 13 Dec 2017 16:55:05 GMT Server: Apache To
我在 apache 后面安装了 tomcat,设置如下: ServerName someapp.com ProxyPass / http://localhost:8080/someapp/ Proxy
我创建了两个网站( http://localhost/webone , http://localhost/webtwo )。 Web 2 有这样的 URL:http://localhost/webtw
我在配置 Apache 和 Tomcat 时遇到问题,情况如下: 我有一个 Apache Web 服务器,运行正常,我只需键入以下内容即可访问该服务器: http://localhost 另外,在这台
我已经通过互联网和 stackoverflow 进行了扫描,但我仍然不确定 proxypass 和 proxypassreverse 的用途。 为什么我们需要proxypass(而不是使用mod_jk
我正在使用 mod rewrite 来掩盖我的应用程序的上下文根。例如, RewriteRule ^/directory/(.*) balancer://appcluster/directory/$1
我已经能够按照我在互联网上进行一些研究(复制粘贴)后发现的方式将我的应用程序映射到域。 ServerName example.com ProxyPass /MyApp ht
我在配置 Apache、Tomcat 和 SSL 时遇到问题,情况是这样的: 我有一个 Apache Web 服务器,正常运行和工作(但是,我可以访问这个服务器,只需键入: https://examp
IIS 中是否有 Apache 的 mod_proxy 等效项? 我的 Apache 的 httpd.conf 中有以下配置(启用了 mod_proxy): Header add Set-Cookie
我以前从未设置过代理。我使用的是共享托管,因此要设置 Apache 指令,我需要使用 .htaccess。我可以使用 .htaccess 执行如下操作吗?有什么限制吗? ProxyRequests O
我有一个来自原始 Django serving question 的后续问题这是如何开发 Django 应用程序并从与我的主要基于 PHP 的站点相同的服务器为它们提供服务(我的网站从静态和 PHP
我一直在尝试在我托管在 Hostgator Centos 服务器上的网站上复制 ProxyPass 和 ProxyPassReverse。我有一个在 Amazon ec2 上运行的 tomcat 应用
我是一名优秀的程序员,十分优秀!