【问题标题】:Keystore and Certificate concepts密钥库和证书概念
【发布时间】:2016-04-15 11:24:05
【问题描述】:

在对密钥库和证书进行了一些研究后,我发现了以下指南:

  1. Understanding keystore, certificates and alias
  2. Java Keytool Essentials: Working with Java Keystores

如果我错了,请纠正我。据我了解(和测试):

  1. 在 cmd 中使用“keytool -genkeypair -alias testingkeypair -keyalg RSA -keystore keystore.jks”将生成一个 keystore.jks 文件,其中包含具有别名“domain”的私钥和公钥对
  2. keystore.jks 文件随后用于签署/导出证书
  3. keystore.jks 文件也可用于存储多个证书

我不明白的是,在我将任何证书导入 keystore.jks 文件之前,当我尝试查看里面的内容时(使用 keytool -list -v -keystore keystore.jks),似乎是已经在里面的证书。它是该密钥库的默认证书吗?我以为“keytool -genkeypair”只会生成带有密钥对的密钥库?

keytool -list -v -keystore keystore.jks 的结果:

密钥库类型:JKS 密钥库提供者:SUN

您的密钥库包含 1 个条目

别名:testingkeypair 创建日期:2016 年 1 月 11 日条目类型: PrivateKeyEntry 证书链长度:1 证书: 所有者:CN=测试,OU=测试,O=测试,L=测试,ST=测试, C=testing 发行人:CN=testing, OU=testing, O=testing, L=testing, ST=testing, C=testing 序列号:650d8951 有效期:Mon Jan 11 14:43:52 SGT 2016 直到:Sun Apr 10 14:43:52 SGT 2016 证书 指纹: MD5: F0:74:9F:27:F0:08:AB:A0:BE:B2:A0:F2:94:45:94:90 SHA1:87:0C:E2:E2:06:A6:52:4E:0C:40:E9:B0:DE:75:A7:8C:CC:01:45:57 SHA256: D1:B2:63:F0:85:A7:06:2E:7D:2B:E1:1E:91:9E:62:56:22:E7:61:36:E6: 23:8A:6F:21:EF:2B:79:0D:12:B8:38 签名算法名称:SHA256withRSA 版本:3

【问题讨论】:

    标签: java ssl


    【解决方案1】:

    经过更多研究,我找到了我想要的答案。它在 keytool 的官方 javadoc 中。 http://docs.oracle.com/javase/1.5.0/docs/tooldocs/solaris/keytool.html#genkeyCmd

    似乎每当使用 -genkey 时,都会生成一对公钥/私钥对,并且公钥被包裹在证书周围(自签名)。因此,当我在 -genkey 命令之后直接使用“keytool -list -v”命令时看到的证书是公钥的证书。

    【讨论】:

      【解决方案2】:

      第二个链接中给出的命令就是答案。 密钥工具-certreq \ -别名域\ -文件域.csr \ -keystore keystore.jks

      您需要生成证书请求,这将生成证书签名请求 .csr 文件。 .csr 文件将包含您的证书详细信息以及公钥,而 .jks 文件将包含您的私钥。您需要将 .csr 文件发送到像 Symntac 这样的 CA 以对其进行签名。 CA 将对其进行签名并为您提供 .cer 或 .crt(签名证书)。您需要将其导入您的 .jks(java 密钥库)。 密钥工具-importcert \ -trustcacerts -文件域.crt \ -别名域\ -keystore keystore.jks

      .jks 就像一个存储证书和密钥的数据库。

      【讨论】:

      • 这是否意味着每当我使用“keytool -genkeypair -alias testingkeypair -keyalg RSA -keystore keystore.jks”时,都会生成一个带有一对私钥/公钥和证书的keystore.jks文件?当我使用“keytool -export”时,keystore.jks 文件中的证书会被导出吗?因为起初我认为当您想使用密钥库文件中的公钥/私钥签署证书时使用命令“-export”
      猜你喜欢
      • 1970-01-01
      • 2011-08-17
      • 2013-01-02
      • 2017-02-05
      • 2011-01-04
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 2013-01-16
      相关资源
      最近更新 更多