2013-04-04 81 views
0

我只是把我的Tomcat Web應用程序支持SSL 使用該像作爲指導: SSL Configurationtruststore即使密碼錯誤也能正常工作,爲什麼?

有人告訴我,有把它添加到server.xml中:

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

現在,SSL工作正常,但是當我想通過另一個使用mytruststore.jks的程序進入web服務時,甚至可能使用錯誤的mytruststore密碼。

爲是更加清晰, -I必須使用這種「mytruststore.jks」進入到web服務 - 「mytruststore.jks」密碼不被Tomcat服務器

檢查是否這種情況下,有關在server.xml中使用keystorePass? 當我刪除「keystorePass」Tomcat無法正常工作。

謝謝!

+0

請說明您是在談論密鑰庫密碼(實際問題)還是信任庫密碼(標題)。 – Bruno 2013-04-05 10:50:19

回答

0

聽起來好像您正在嘗試使用keystorePass爲SSL安全網站提供某種級別的身份驗證安全性。這不是SSL工作的方式,您正在保護在Web服務器和客戶端瀏覽器之間傳輸的數據。它不會阻止訪問網站。

keystorePass指定密碼來解密使用類似keytool的.jks文件。

我可能會離開,但這是我如何解釋這種情況,請更新您希望發生的事情。

+1

我不知道你的意思是'這不是SSL的工作方式'。身份驗證是SSL的重要組成部分,在Java中它由密鑰庫,密碼和信任庫提供。這完全是* SSL的工作方式。 -1 – EJP 2013-04-04 23:50:59

+0

@EJP Rosh認爲這聽起來合法:SSL不依賴密鑰庫密碼來存在於其他任何地方,而是在服務器上,其中密鑰庫用所述密碼解密。 SSL/TLS提供的身份驗證是,如果客戶端顯示正確的證書,則可以合理確保與正確的服務器交談。 SSL/TLS中的整個信任/加密/認證是很多誤解的祕訣,但對我來說聽起來像Rosh就在這裏。 +1。我看不到任何與您對此問題的答案相抵觸的東西 – 2013-04-05 08:45:34

+1

@OlafKock,Tomcat使用keystorePass(在Tomcat連接器中)來解鎖和使用私鑰:必須在服務器端正確使用它(在其上此連接器配置示例是)。當密鑰庫被用作信任存儲(在客戶端)時,EJP的答案是正確的。這個問題有點不清楚,但這個答案不太合理。 keystorePass絕對不只是用於keytool。 – Bruno 2013-04-05 10:55:40

1

將密鑰庫文件用作信任庫時,密碼僅用於驗證,驗證錯誤可能完全被忽略。密碼實際上僅用於保護私鑰,並且信任庫中沒有任何密碼。