代码之家  ›  专栏  ›  技术社区  ›  Felix Nathan Hinkley

密钥库密码丢失,我有什么选择?

  •  0
  • Felix Nathan Hinkley  · 技术社区  · 7 年前

    .csr 文件,把它们寄出去然后回来 .p7b

    如果我只是创建一个新的密钥库并将证书导入该密钥库,或者我必须请求新的证书,那么我是否可能会遇到问题?

    2 回复  |  直到 7 年前
        1
  •  1
  •   user207421    7 年前

    如果我只是创建一个新的密钥库并将证书导入该密钥库,是否可能会遇到问题

        2
  •  0
  •   dave_thompson_085    7 年前

    实际上有点复杂。尽管名称不同,Java“密钥库”实际上可以包含以下任意组合:

    • PrivateKeyEntry--包含privatekey

    • TrustedCertEntry——包含证书,通常是根CA证书,用于验证 另外

    • (仅在某些格式中,不是常见的JKS)SecretKeyEntry——在这里不相关

    看见 the javadoc for java.security.KeyStore

    因此,如果你告诉 keytool 要将您自己的证书导入到一个新的密钥库文件,它将这样做——但作为可以识别其他人的受信任证书条目,而不是作为可以识别您的私钥条目。唯一的迹象是微妙的: Certificate was added (即trustedcert)不是 Certificate reply was installed (这意味着匹配的私钥)。

    如果您随后仅为SSL/TLS服务器使用此cert not privatekey密钥库,则不会出现任何立即或明显的错误;通常,它会拒绝所有连接尝试,因为“没有共同的密码套件”。(如果两个端点都已配置为允许“匿名”密码套件,则通过匿名套件连接将/可能成功,但这不会提供针对当前常见主动攻击的安全性,因此通常不会这样做。)

    但这并没有改变结果:如果没有密码短语,也就无法访问旧的私钥,那么你就会陷入困境,必须重新开始。请注意,如果您使用付费CA,其中许多(大多数)允许免费或以大幅折扣为同一域名“重新键入”证书。