我试图在本地Tomcat 6安装中设置SSL。对于这一点,我也跟着官方How-To执行以下操作:在Tomcat中使用SSL的密钥库格式无效6
$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
我得到
[email protected]:~# $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
显然,密钥库类型是不同的。我如何更改类型并解决我的问题?谢谢!
非常感谢您的回答:-)还有一些小问题^^哪位用户应该运行Tomcat?如何知道这个keytool的东西?这将是最后一个想到我的电脑上有这么多不同版本的东西?!最后:我用上面提到的命令创建了一个.keystore和一个server.crt。 Tomcat完全启动,但浏览器仍然提到证书不可信......我将创建一个赏金给你一些更多的观点:-) – strauberry
要配置你的多个Java安装,请看[update-java-alternatives] (http://wiki.debian.org/Java/Sun)。看起来你已经使用Debian软件包安装了Tomcat,所以可能会创建一个'tomcat'或'tomcat6'用户。有一个'/ etc/init.d/tomcat6'脚本应该在这个用户下为你启动/停止Tomcat。 '/ usr/share/doc/tomcat6/README.Debian.gz'肯定会有更多关于这方面的信息。 – Bruno
关于服务器证书,由于它是自签名的,因此您需要在您使用的浏览器上手动导入:要么手动添加例外(您可以验证它与您发布的'.crt'匹配:您可以查看它使用'openssl x509 -text -noout -in server.crt'),或直接将'server.crt'文件导入浏览器。 – Bruno