提前感谢你的帮助。
我已经设置了一个 apache tomcat 9 环境,以便使用 SSL 证书访问我的网站。问题是,我需要它能够通过在浏览器中输入 mysite.com 来访问该网站,但直到我手动输入“https:// mysite. com” 才起作用,但只有在我第一次输入 https:// 之后,我才能访问 mysite.com 并自动转到“https:// mysite. com”。
我需要让用户从第一次尝试就可以访问它,而无需手动输入 https://
对于服务器(oracle linux 7)防火墙,我正在转发并允许访问某些端口,如下所示:
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens3
sources:
services: dhcpv6-client ssh
ports: 22/tcp 8080/tcp 443/tcp 5901/tcp 80/tcp 55555/tcp 9090/tcp 8443/tcp
protocols:
masquerade: no
forward-ports: port=443:proto=tcp:toport=8443:toaddr=
port=80:proto=tcp:toport=8443:toaddr=
source-ports:
icmp-blocks:
rich rules:
对于“conf/server.xml”中的 apache 连接器,我将其配置如下:
<Connector port="8443"
maxHttpHeaderSize="8192"
maxThreads="150"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
disableUploadTimeout="true"
acceptCount="100"
scheme="https"
secure="true"
SSLEnabled="true"
clientAuth="false"
sslProtocol="TLS"
keyAlias="vennii"
keystoreFile="keystorefile.jks"
keystorePass="keystorepassword" />
我非常感激任何能给我的帮助!再次感谢!
答案1
据互联网,至少,你似乎需要一个conf/server.xml
带有redirectPort
语句的 HTTP 连接器:
<!-- HTTP Connector -->
<Connector port="8080"
...
redirectPort="8443"
... >
请注意一些建议protocol="HTTP/1.1"
声明后面也包括port
。
您可能还需要在conf/web.xml
(显然在任何 servelet-mapping 标签之后)重定向整个应用程序:
<security-constraint>
<web-resource-collection>
<web-resource-name>Entire Application</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
笔记
请注意
...
并非字面意思(如上)。它们表示任何其他相关语句的占位符。不要忘记重新启动 Tomcat 来应用您的更改。
如果您不想在 URL 中指定端口(即仅使用 eg
http://example.com
或https://example.com
),则应使用 port80
和443
而不是8080
和8443
。请记住
http://example.com
,、https://example.com
和都可以被视为单独的地址http://www.example.com
,https://www.example.com
应如此处理。