混淆为jsse生成私钥和公钥?

时间:2014-06-25 20:28:33

标签: java ssl ssl-certificate jsse truststore

我找到了介绍生成密钥的步骤的教程。 它告诉以下步骤:

keytool -genkey -alias clientprivate -keystore client.private -storetype JKS -keyalg rsa \
    -dname "CN=Your Name, OU=Your Organizational Unit, O=Your Organization, L=Your City, \
    S=Your State, C=Your Country" -storepass clientpw -keypass clientpw

keytool -genkey -alias serverprivate -keystore server.private -storetype JKS -keyalg rsa \
   -dname "CN=Your Name, OU=Your Organizational Unit, O=Your Organization, L=Your City, \
   S=Your State, C=Your Country" -storepass serverpw -keypass serverpw

keytool -export -alias clientprivate -keystore client.private \
    -file temp.key -storepass clientpw

keytool -import -noprompt -alias clientpublic -keystore client.public \
    -file temp.key -storepass public

keytool -export -alias serverprivate -keystore server.private \
    -file temp.key -storepass serverpw
keytool -import -noprompt -alias serverpublic -keystore server.public \
   -file temp.key -storepass public

但我很困惑.jks文件在哪里?为什么我们使用temp.key? 我可以回答我的问题,我将不胜感激......

2 个答案:

答案 0 :(得分:0)

  

.jks文件在哪里?

前两个操作在$ HOME / .keystore上运行。

  

为什么我们使用temp.key?

作为从服务器环境传送到客户端环境以进行导入的中间文件,反之亦然。携带.keystore文件本身会破坏私钥,因此不安全。导出步骤不会导出私钥。

答案 1 :(得分:0)

最终,.keystore.jks只是文件扩展名:您可以明智地命名文件。某些应用程序使用存储在$HOME/.keystore中的密钥库文件:它通常暗示它是JKS文件,因为JKS is the default keystore type in the Sun/Oracle Java security provider。并非每个人都使用.jks扩展名来获取JKS文件,因为它默认为默认值。我建议使用扩展名,只是为了记住要指定的类型(如果需要)。

在Java中,单词keystore可以具有以下任一含义,具体取决于上下文:

在谈论文件和存储时,这实际上不是键/值对的存储工具(有很多或其他格式)。相反,它是一个存储加密密钥和证书的容器(我相信其中一些也可以存储密码)。通常,这些文件是加密的并受密码保护,以便不会将此数据提供给未授权方。

Java使用其KeyStore类和相关API来使用密钥库(whether it's file based or not)。 JKS是特定于Java的文件格式,但API也可以与其他文件类型一起使用,通常是PKCS#12。如果要加载密钥库,则必须指定其密钥库类型。传统的扩展将是:

  • .jks代表"JKS"
  • 对于类型.p12
  • .pfx"PKCS12"(规范名称为PKCS#12,但Java密钥库类型名称中未使用#)。

此外,BouncyCastle还提供了其实现,特别是BKS(通常使用.bks扩展名),它经常用于Android应用程序。

你对此很困惑。

keystore是证书,私钥等的容器。

这个密钥库的格式应该有什么规格,主要是#PKCS12

JKS是Java的密钥库实现。还有BKS等。

这些都是keystore 类型

所以回答你的问题:

  

.keystore文件和.jks文件之间的区别

没有。 JKS是密钥库文件。 密钥库类型之间存在差异。例如。 JKS vs #PKCS12

这可能会帮助您开始。

http://ankursinghal86.blogspot.in/2014/06/authentication-with-client-certificate.html