--痛苦是人最好的试金石 Pain is man's best litmus test

关于SSL认证后出现的http和https无法同时访问问题-LMLPHP

问题:

答: 

从你提供的 server.xml 配置文件中,可以看出你为域名 xxx.xxx.com 配置了 SSL,但在配置上有几个潜在的问题可能导致其他域名无法访问 HTTP 服务。以下是详细分析和建议:

1. 端口配置问题

  • 你将 Connector 配置在 443 端口上,并且启用了 SSL。这意味着这个端口只接受 HTTPS 请求。如果其他域名没有配置 SSL 证书,它们将无法通过 HTTPS 访问。
  • 而且你没有配置一个单独的 HTTP 端口(例如默认的 808080 端口),这会导致非 HTTPS 请求没有对应的处理端口,因而无法访问。

2. 未配置 HTTP Connector

  • 如果你希望其他域名继续使用 HTTP 访问,建议你在 server.xml 中添加一个非 SSL 的 HTTP Connector。例如,使用默认的 8080 端口:
     xml 

    复制代码

    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />

3. redirectPort 配置

  • 在现有的 HTTPS Connector 中,你设置了 redirectPort="8443",但其实你并没有配置这个端口。这个设置通常用于将 HTTP 请求重定向到 HTTPS,但在这个情况下,它可能会引起混乱。如果你不打算使用 8443 端口,可以移除 redirectPort 属性,或者确保 HTTP 连接器的 redirectPort 配置正确。

4. SSL 证书与多个域名

  • 当前 SSL 证书只适用于 xxx.xxxx.com,如果其他域名需要使用 HTTPS,它们需要各自的 SSL 证书,或者你需要一个支持多个域名(SAN)的 SSL 证书。

解决方法:

  1. 添加 HTTP Connector:

    • <Service name="Catalina"> 内添加一个新的 HTTP Connector,例如:
       xml 

      复制代码

      <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />

    • 这样,未配置 SSL 的域名可以通过 HTTP 访问。
  2. 调整 redirectPort 设置:

    • 根据你是否需要将 HTTP 请求重定向到 HTTPS,选择保留或移除 redirectPort
  3. 为其他域名配置 SSL:

    • 如果希望其他域名也支持 HTTPS,你需要为它们配置相应的 SSL 证书,并在 server.xml 中为它们添加 SSL Connector

调整后,你的 server.xml 可能会如下所示(添加了 HTTP 连接器):

 

xml

复制代码

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" /> <Connector port="443" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxParameterCount="1000" SSLEnabled="true" scheme="https" secure="true" keystoreFile="conf/xxx.xxxx.com.jks" keystoreType="JKS" keystorePass="s1qgn5cp" clientAuth="false" SSLProtocol="TLSv1.1+TLSv1.2+TLSv1.3" ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>

请根据你的实际需求和证书配置调整 server.xml 文件。完成这些修改后,重启 Tomcat 并测试各域名的访问情况。

08-31 07:01