tomcat 9.2 未获取禁用 tls 1.0 的配置
tomcat 9.2 not picking up config for disabling tls 1.0
我试图在 apache tomcat 9.0.2 中禁用 TLS 1.0,但是 属性 从未被采用
下面是错误
20-Feb-2019 22:51:40.913 警告 [main] org.apache.catalina.startup.SetAllPropertiesRule.begin [SetAllPropertiesRule]{Server/Service/Connector/SSLHostConfig/Certificate} 将 属性 'sslProtocol' 设置为 'TLSv1.1,TLSv1.2' 没有找到匹配的 属性。
20-Feb-2019 22:51:40.914 警告 [main] org.apache.catalina.startup.SetAllPropertiesRule.begin [SetAllPropertiesRule]{Server/Service/Connector/SSLHostConfig/Certificate} 将 属性 'sslEnabledProtocols' 设置为 'TLSv1.1,TLSv1.2' 没有找到匹配的 属性.
Server.XML配置文件
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="/opt/certs/newtomcatcert/hello.gi.com.jks"
certificateKeystorePassword="########*"
type="RSA" sslProtocol="TLSv1.1,TLSv1.2"
sslEnabledProtocols="TLSv1.1,TLSv1.2" />
</SSLHostConfig>
</Connector>
-->
nmap 结果
在 2019-03-04 19:54 EST 开始 Nmap 5.51 ( http://nmap.org )
hello.gi.com (10.10.100.71) 的 Nmap 扫描报告
主机启动(0.0013 秒延迟)。
港口国服务
443/tcp 打开 https
| ssl 枚举密码:
| TLSv1.0
|密码 (4)
| TLS_DHE_RSA_WITH_AES_128_CBC_SHA
| TLS_DHE_RSA_WITH_AES_256_CBC_SHA
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
|压缩机 (3)
|未压缩
|未压缩
|未压缩
| TLSv1.1
|密码 (4)
| TLS_DHE_RSA_WITH_AES_128_CBC_SHA
| TLS_DHE_RSA_WITH_AES_256_CBC_SHA
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
|压缩机 (3)
|未压缩
|未压缩
|_ 未压缩
MAC 地址:00:50:56:A4:E0:AE (VMware)
Nmap 完成:在 1.29 秒内扫描了 1 个 IP 地址(启动了 1 个主机)
最后竟然是句法
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig protocols="TLSv1.1,TLSv1.2">
<Certificate certificateKeystoreFile="/opt/certs/newtomcatcert/hello.gi.com.jks"
certificateKeystorePassword="########*"
type="RSA" />
</SSLHostConfig>
</Connector>
如果您想在 Tomcat 9.0.44 上配置此连接器,您在第二个元素 TLSv1.2 之前缺少 + 号。
以使用 Java NIO 连接器为例:
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig protocols="TLSv1.1,+TLSv1.2">
<Certificate certificateKeystoreFile="/path/to/keystore.jks"
certificateKeystorePassword="***********"
type="RSA" />
</SSLHostConfig>
</Connector>
作为另一个例子,如果你想使用 Java NIO2 连接器。这允许您使用 HTTP2 协议,如果您想激活 TLSv1.1、TLSv1.2 和 TLSv1.3,则可以使用以下连接器:
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
maxThreads="150" SSLEnabled="true">
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig protocols="TLSv1.1,+TLSv1.2,+TLSv1.3">
<Certificate certificateKeystoreFile="/path/to/keystore.jks"
certificateKeystorePassword="***********"
type="RSA" />
</SSLHostConfig>
</Connector>
最后一个示例与前一个示例类似,但删除了所有不再安全的协议(除 SSLv2、SSLv3 和 TLSv1.0 外均处于活动状态):
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
maxThreads="150" SSLEnabled="true">
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig protocols="all,-SSLv2,-SSLv3,-TLSv1">
<Certificate certificateKeystoreFile="/path/to/keystore.jks"
certificateKeystorePassword="***********"
type="RSA" />
</SSLHostConfig>
</Connector>
我试图在 apache tomcat 9.0.2 中禁用 TLS 1.0,但是 属性 从未被采用
下面是错误
20-Feb-2019 22:51:40.913 警告 [main] org.apache.catalina.startup.SetAllPropertiesRule.begin [SetAllPropertiesRule]{Server/Service/Connector/SSLHostConfig/Certificate} 将 属性 'sslProtocol' 设置为 'TLSv1.1,TLSv1.2' 没有找到匹配的 属性。 20-Feb-2019 22:51:40.914 警告 [main] org.apache.catalina.startup.SetAllPropertiesRule.begin [SetAllPropertiesRule]{Server/Service/Connector/SSLHostConfig/Certificate} 将 属性 'sslEnabledProtocols' 设置为 'TLSv1.1,TLSv1.2' 没有找到匹配的 属性.
Server.XML配置文件
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="/opt/certs/newtomcatcert/hello.gi.com.jks"
certificateKeystorePassword="########*"
type="RSA" sslProtocol="TLSv1.1,TLSv1.2"
sslEnabledProtocols="TLSv1.1,TLSv1.2" />
</SSLHostConfig>
</Connector>
-->
nmap 结果
在 2019-03-04 19:54 EST 开始 Nmap 5.51 ( http://nmap.org ) hello.gi.com (10.10.100.71) 的 Nmap 扫描报告 主机启动(0.0013 秒延迟)。 港口国服务 443/tcp 打开 https | ssl 枚举密码: | TLSv1.0 |密码 (4) | TLS_DHE_RSA_WITH_AES_128_CBC_SHA | TLS_DHE_RSA_WITH_AES_256_CBC_SHA | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA |压缩机 (3) |未压缩 |未压缩 |未压缩 | TLSv1.1 |密码 (4) | TLS_DHE_RSA_WITH_AES_128_CBC_SHA | TLS_DHE_RSA_WITH_AES_256_CBC_SHA | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA |压缩机 (3) |未压缩 |未压缩 |_ 未压缩 MAC 地址:00:50:56:A4:E0:AE (VMware)
Nmap 完成:在 1.29 秒内扫描了 1 个 IP 地址(启动了 1 个主机)
最后竟然是句法
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig protocols="TLSv1.1,TLSv1.2">
<Certificate certificateKeystoreFile="/opt/certs/newtomcatcert/hello.gi.com.jks"
certificateKeystorePassword="########*"
type="RSA" />
</SSLHostConfig>
</Connector>
如果您想在 Tomcat 9.0.44 上配置此连接器,您在第二个元素 TLSv1.2 之前缺少 + 号。
以使用 Java NIO 连接器为例:
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig protocols="TLSv1.1,+TLSv1.2">
<Certificate certificateKeystoreFile="/path/to/keystore.jks"
certificateKeystorePassword="***********"
type="RSA" />
</SSLHostConfig>
</Connector>
作为另一个例子,如果你想使用 Java NIO2 连接器。这允许您使用 HTTP2 协议,如果您想激活 TLSv1.1、TLSv1.2 和 TLSv1.3,则可以使用以下连接器:
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
maxThreads="150" SSLEnabled="true">
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig protocols="TLSv1.1,+TLSv1.2,+TLSv1.3">
<Certificate certificateKeystoreFile="/path/to/keystore.jks"
certificateKeystorePassword="***********"
type="RSA" />
</SSLHostConfig>
</Connector>
最后一个示例与前一个示例类似,但删除了所有不再安全的协议(除 SSLv2、SSLv3 和 TLSv1.0 外均处于活动状态):
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
maxThreads="150" SSLEnabled="true">
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig protocols="all,-SSLv2,-SSLv3,-TLSv1">
<Certificate certificateKeystoreFile="/path/to/keystore.jks"
certificateKeystorePassword="***********"
type="RSA" />
</SSLHostConfig>
</Connector>