gpt4 book ai didi

ssl - Tomcat 6 中使用 SSL 的无效 keystore 格式

转载 作者:太空宇宙 更新时间:2023-11-03 12:41:21 25 4
gpt4 key购买 nike

我正在尝试在本地 Tomcat 6 安装中设置 SSL。为此,我关注了官方How-To执行以下操作:

$JAVA_HOME/bin/keytool -genkey -v -keyalg RSA -alias
tomcat -keypass changeit -storepass changeit
$JAVA_HOME/bin/keytool -export -alias tomcat -storepass
changeit -file /root/server.crt

然后更改 $CATALINA_BASE/conf/server.xml,在注释中:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/root/.keystore" keystorePass="changeit" />

启动 Tomcat 后,我​​得到这个异常:

INFO: Initializing Coyote HTTP/1.1 on http-8080
30.06.2011 10:15:24 org.apache.tomcat.util.net.jsse.JSSESocketFactory getStore
SCHWERWIEGEND: Failed to load keystore type JKS with path /root/.keystore
due to Invalid keystore format
java.io.IOException: Invalid keystore format
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:633)
at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:38)
at java.security.KeyStore.load(KeyStore.java:1185)

当我使用 keytool -list 查看 keystore 时,我得到了

root@host:~# $JAVA_HOME/bin/keytool -list
Enter key store password: changeit
Key store type: gkr
Key store provider: GNU-CRYPTO

Key store contains 1 entry(ies)

Alias name: tomcat
Creation timestamp: Donnerstag, 30. Juni 2011 - 10:13:40 MESZ
Entry type: key-entry
Certificate fingerprint (MD5): 6A:B9:...C:89:1C

显然, keystore 类型不同。我怎样才能改变类型,这会解决我的问题吗?谢谢!

最佳答案

它看起来像 keytool你正在使用 GNU implementation ,而不是来自 Oracle/Sun 或 OpenJDK 的。来自 keytool -list 的输出,它会生成一个 gkr商店类型,即 GNU Keyring Store .

我不确定您是使用 OpenJDK 还是 Sun/Oracle JRE 运行 Apache Tomcat,在这种情况下,如果没有额外的安全提供程序,将不支持这种格式。

如果您使用支持 gkr 的 GNU JRE 运行 Apache Tomcat (或者至少是一个 JRE,您在其中添加了支持 gkr 的安全提供程序),您可以尝试 keystoreType="gkr"在你的<Connector />配置。

然而,最简单的可能是使用 keytool由 Oracle 或 OpenJDK 提供并使用 JKS 存储类型(如果您使用 OpenJDK 或 Sun/Oracle JRE 运行 Apache Tomcat,这将是默认类型)。它可能与您的 JRE 一起安装,但它看起来不像 $JAVA_HOME你正在使用指向 Oracle 或 OpenJDK JAVA_HOME .一些 Linux 发行版具有安装多个 JRE 和配置链接的机制(Debian/Ubuntu 系列中的 update-alternatives)。

(作为旁注,通常不建议以 root 身份运行 Apache Tomcat,您似乎正在这样做,因为在您的示例中 $HOME/.keystore/root/.keystore。)

关于ssl - Tomcat 6 中使用 SSL 的无效 keystore 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6535920/

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