2012-05-07 78 views
2

我正在实施https项目。所以我刚刚尝试了与tomcat的SSL连接 我使用以下站点的以下命令创建了密钥和证书。本地主机的Eclipse tomcat https配置

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的命令证书和密钥。(我使用的密钥为 “普拉塔普”)

我就把这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命令。

可以在任何身体上给你this..Thank一些轻..

回答

2

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

顺便说一句:“密钥库被篡改,或者密码不正确” - 这个错误意味着你的密钥库崩溃或者你使用了错误的密码。如果您使用selfsigned cert remeber创建信任库。

+0

感谢响应。我的文件没有错..我猜eclipse正在期待着jsse实现的形式......因为在apr方法的过程中没有keystore ..我想我们必须改变apr环境来keystore(jsse )环境...任何方式,当我尝试与NetBeans它是完全正常工作...所以我坚持netbeans ...感谢您的帮助.. – user533

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"/>