用于localhost的Eclipse tomcat https配置

时间:2012-05-07 17:09:35

标签: java eclipse tomcat https localhost

我正在实施https项目。所以我只是尝试使用tomcat进行ssl连接  我使用以下站点中的以下命令创建了密钥和证书。

http://mircwiki.rsna.org/index.php?title=Configuring_Tomcat_to_Support_SSL

genrsa –des3 –out tomcatkey.pem 2048

req –new –x509 –key tomcatkey.pem –out tomcatcert.pem –days 1095 -config "c:/openssl/tomcatkey.pem"

所以我从openssl命令获得了证书和密钥。(我用密钥作为“pratap”)

我将这两个文件放在tomcat文件夹中。

我更改了连接器元素8443

<Connector
           port="8443" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           SSLCertificateFile="c:/tomcat7/tomcatcert.pem"
           SSLCertificateKeyFile="c:/tomcat7/tomcatkey.pem"
           clientAuth="optional" SSLProtocol="TLSv1" SSLPassword="pratap" />

当我运行https://localhost:8443时,它运行正常。

现在在eclipse中我创建了这个服务器并尝试从eclipse运行

但它显示以下错误。

java.io.IOException: Keystore was tampered with, or password was incorrect
    at sun.security.provider.JavaKeyStore.engineLoad(Unknown Source)
    at sun.security.provider.JavaKeyStore$JKS.engineLoad(Unknown Source)
    at java.security.KeyStore.load(Unknown Source)

我没有在任何地方使用keystore命令。

任何人都可以对此有所了解......谢谢你......

2 个答案:

答案 0 :(得分:2)

您应该阅读http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html#Configuration

BTW:“Keystore被篡改,或密码不正确” - 此错误表示您的密钥库崩溃或您使用了错误的密码。如果使用selfsigned cert remeber来创建信任库。

答案 1 :(得分:1)

您需要将密钥库密码传递到连接器配置中。这是一个例子:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           keystorePass="qwerty"
            clientAuth="false" sslProtocol="TLS" />

如果您想使用另一个密钥库,则需要创建一个:

keytool -genkey -alias tomcat -keyalg RSA -keystore /home/user/.keystore2

并在您的配置中使用它:

<Connector 
       port="8443" maxThreads="200"
       scheme="https" secure="true" SSLEnabled="true"
       keystoreFile="${user.home}/.keystore2" keystorePass="qwerty"
       clientAuth="false" sslProtocol="TLS"/>