tomcat 8.5 中缺少 ServerSocketFactory
Misssing ServerSocketFactory in tomcat 8.5
如下link
https://github.com/spring-projects/spring-boot/issues/6164,从 tomcat 8.5
中删除了以下功能
a) Class org.apache.tomcat.util.net.ServerSocketFactory 不再存在
b) Class org.apache.tomcat.util.net.jsse.JSSESocketFactory 不再存在
c) 方法 JSSEImplementaton.getServerSockerFactory(AbstractEndpoint) 不再存在
d) 方法 JSSEImplementaton.getSSLUtil(AbstractEndpoint) 不再存在
这些使我们从 tomcat 8.0 升级到 tomcat 8.5.x 很困难。
我们有两个要求
- Tomcat AJP 协议接收来自 HTTP 服务器的加密内容并给出加密响应。这在 tomcat 8 中是可能的,通过使用自定义 类 实现 tomcat 的 ServerSocketFactory 接口。
- 在自定义密钥库(XML 文件)中存储 tomcat https 的证书文件
如何在 tomcat 8.5 中实现这些?任何建议表示赞赏。 (我们在 Tomcat 8 中使用自定义 SocketFcatory 实现 tomcat 的接口)
连接器重构后,允许指定任意 ServerSocketFactory
的 JIoEndpoint
不再可用。
但是,如果您允许对 Tomcat 的代码库进行一些更改,AJP 连接器几乎可以接受 SSL 连接:AbstractAjpProtocol
class 只是缺少 addSslHostConfig
和 findSslHostConfigs
或更好它有不存储或 return 任何带有非常明确注释的实现:
SSL is not supported in AJP
如果像 AbstractHttp11Protocol
中那样更改它们,您将能够像配置 HTTP/1.1 连接器一样配置 AJP 连接器:
<Connector SSLEnabled="true" port="8009" protocol="AJP/1.3">
<SSLHostConfig ...>
<Certificate ... />
</SSLHostConfig>
</Connector>
关于证书存储,您可以实施自己的 KeyStoreSpi
和安全提供程序并使用:
<Certificate certificateKeystoreProvider="your_provider"
certificateKeystoreType="your_type"
... />
如下link
https://github.com/spring-projects/spring-boot/issues/6164,从 tomcat 8.5
中删除了以下功能a) Class org.apache.tomcat.util.net.ServerSocketFactory 不再存在
b) Class org.apache.tomcat.util.net.jsse.JSSESocketFactory 不再存在
c) 方法 JSSEImplementaton.getServerSockerFactory(AbstractEndpoint) 不再存在
d) 方法 JSSEImplementaton.getSSLUtil(AbstractEndpoint) 不再存在
这些使我们从 tomcat 8.0 升级到 tomcat 8.5.x 很困难。
我们有两个要求
- Tomcat AJP 协议接收来自 HTTP 服务器的加密内容并给出加密响应。这在 tomcat 8 中是可能的,通过使用自定义 类 实现 tomcat 的 ServerSocketFactory 接口。
- 在自定义密钥库(XML 文件)中存储 tomcat https 的证书文件
如何在 tomcat 8.5 中实现这些?任何建议表示赞赏。 (我们在 Tomcat 8 中使用自定义 SocketFcatory 实现 tomcat 的接口)
连接器重构后,允许指定任意 ServerSocketFactory
的 JIoEndpoint
不再可用。
但是,如果您允许对 Tomcat 的代码库进行一些更改,AJP 连接器几乎可以接受 SSL 连接:AbstractAjpProtocol
class 只是缺少 addSslHostConfig
和 findSslHostConfigs
或更好它有不存储或 return 任何带有非常明确注释的实现:
SSL is not supported in AJP
如果像 AbstractHttp11Protocol
中那样更改它们,您将能够像配置 HTTP/1.1 连接器一样配置 AJP 连接器:
<Connector SSLEnabled="true" port="8009" protocol="AJP/1.3">
<SSLHostConfig ...>
<Certificate ... />
</SSLHostConfig>
</Connector>
关于证书存储,您可以实施自己的 KeyStoreSpi
和安全提供程序并使用:
<Certificate certificateKeystoreProvider="your_provider"
certificateKeystoreType="your_type"
... />