2013-04-04 86 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

将密钥库文件用作信任库时,密码仅用于验证,验证错误可能完全被忽略。密码实际上仅用于保护私钥,并且信任库中没有任何密码。