gpt4 book ai didi

java - Tomcat 9 上的 SSL Windows 认证错误

转载 作者:行者123 更新时间:2023-12-04 22:35:17 25 4
gpt4 key购买 nike

SSL 在我的服务器 Tomcat 7.0.108 中启用。我根据这个答案启用了https://stackoverflow.com/a/48883483

我在 serverx.xml 中的连接器是:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxHttpHeaderSize="65536"
maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
clientAuth="false"
sslProtocol="TLS"
keyAlias="tomcat"
keystoreFile=""
keystorePass=""
keystoreType="Windows-My">
</Connector>

但是,在 Tomcat 9.0.45 中同样的配置出现了错误。

org.apache.tomcat.util.net.openssl.OpenSSLContext.init Error initializing SSL context
java.lang.NullPointerException
at java.util.Base64$Encoder.encode(Base64.java:261)
at java.util.Base64$Encoder.encodeToString(Base64.java:315)
at org.apache.tomcat.util.net.openssl.OpenSSLContext.addCertificate(OpenSSLContext.java:405)
at org.apache.tomcat.util.net.openssl.OpenSSLContext.init(OpenSSLContext.java:250)

有人使用 Windows 证书为 Tomcat 9 启用 SSL 吗?

最佳答案

错误是由 SSLImplementation 引起的由 Tomcat 选择:OpenSSLImplementation 需要直接访问私钥,如果您使用 Windows-MY keystore ,这是不可能的。

你只需要切换到JSSEImplementation,这会产生以下配置:

<Connector port="8443"
sslImplementationName="org.apache.tomcat.util.net.jsse.JSSEImplementation"
scheme="https" secure="true" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreType="Windows-MY"
certificateKeystoreFile=""
certificateKeyAlias="tomcat" />
</SSLHostConfig>
</Connector>

sslImplementationName 的默认值会自动从 JSSEImplementation 切换到 OpenSSLImplementation,只要存在 Tomcat Native 库(这在 Windows 上很常见) : 比照。 Tomcat Documentation .

请注意,从 Tomcat 8.5 开始,SSL 配置语法发生了变化。您在问题中使用的那个已在 Tomcat 8.5 中弃用并从 Tomcat 10.0 中删除。

关于java - Tomcat 9 上的 SSL Windows 认证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67020291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com