假设我有 2 个文件:一个 RSA 密钥文件client.key
和一个认证文件client.crt
。
我在没有密码的情况下创建了它们,现在我client.key
通过命令使用密码加密了文件:
openssl rsa -des3 -in client.key -out client-enc.key
现在我想client.crt
使用 client-enc.key 重新创建/更新文件。我怎样才能做到这一点?
答案1
证书包含公钥和该公钥的签名。这不是机密信息;有时您可能出于隐私原因不想透露它,但这并不是一个足够普遍的问题,不会有特定的证书加密格式。如果您想加密证书,请使用您最喜欢的加密工具,例如PGP/GPG。
您是否担心您更改了密钥?如果是这样,您会对密钥和证书代表什么感到困惑,并且由于这是一个相当重要的问题,我建议您阅读有关该主题的更多内容。
- 如果您只在密钥文件上设置了密码,那么您就对密钥文件,即存储密钥的介质。私钥文件的加密是一个独立的操作,与文件包含私钥没有直接关系。但是,由于保护私钥的机密性是一个非常常见的要求,因此有一个标准格式和一个
openssl
命令来执行此操作。密钥是相同的,但该密钥的特定副本现在需要密码才能读取。 - 如果您实际上更改了私钥(根据您的描述,您没有更改!),则必须从头开始重新生成证书。公钥仅对应于一个特定的私钥这一事实是公钥密码学的基础:公钥代表你的身份和(了解)私钥是您的方式证明你的身份。
答案2
我不相信你需要这样做。该.crt
文件仅包含密钥的公共部分,它不包含私钥的副本,而且您还没有更改私钥的内容 - 您只是将其包装在对称加密层中(由密码)。为什么您认为需要更新证书?