2

我正在实施 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”)

我把这2个文件放在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 命令。

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

4

2 回答 2

2

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

顺便说一句:“密钥库被篡改,或密码不正确” - 此错误表示您的密钥库已崩溃或您使用了错误的密码。如果您使用自签名证书记住来创建信任库。

于 2012-05-07T19:32:09.963 回答
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"/>
于 2013-10-16T15:22:14.720 回答