2012-05-07 114 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"/>