密钥库文件在SSL中扮演什么角色?

时间:2012-06-28 23:21:00

标签: servlets security keystore

完全不熟悉SSL我终于设法让我的应用程序运行使用https:

在tomcat服务器中我添加了

    <Connector port="8443"
    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS"
    keystoreFile="c:/keystore.key"
    keystorePass="mypassword" 
    SSLEnabled="true" />

在我的应用程序中我添加了

 <user-data-constraint>
          <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
 </user-data-constraint>

现在我的问题是,即使我从c:\删除密钥库文件,我使用:

生成
keytool -genkey -alias tomcat -keypass pass -keystore keystore.key -storepass pass

我的应用程序仍以https运行?如果我有这个文件,它会有什么不同?我真不知道吗?

1 个答案:

答案 0 :(得分:0)

私钥用于SSL握手的身份验证阶段,用于签署您提供的证书。对等体通过证书的公钥验证签名。这证明您拥有证书,因为只有您可以使用与其公钥对应的私钥对其进行签名,因为只有您拥有私钥,因为它是私有的。这是建立您的身份的一部分,即身份验证。

如果服务器需要或想要客户端身份验证,SSL客户端只需要私钥,证书,密钥库等。

服务器的私钥也用于生成共享密钥的初始阶段,而后者又用于生成会话的会话密钥。数据由会话密钥加密。