因此,我有一个基于 weblogic 的系统,该系统使用 Globalsign 提供的 2048 位密钥证书。该证书即将到期,因此我从同一供应商处获得了新证书(所有文本都可以编码为 CER 格式)。
问题是,这次他们没有给我任何私人密码。我向他们的客户支持部门反映,他们说他们的流程已经改变,我应该能够从我发送给他们的证书和 CSR 中生成密码。
我不知道该怎么做。他们平静地将我转介给 weblogic 供应商(即 Oracle)的客户支持,然后就解决了问题。过去与 Oracle 客户支持的互动产生了更多问题,而他们却解决了更多问题。
任何帮助都将不胜感激。我也尝试了这些链接,但没有帮助:
答案1
首先,证书完全由公开信息组成,没有密码。“私钥”可能有密码。
第二,CA不具有你的私钥和密码——两者都是生成的在您的系统上,因为它们用于制作您提交的 CSR。因此,如果您使用 WebLogic 生成 CSR,则可能意味着它已经存储了私钥,只是等待证书与其一起导入(至少在大多数其他程序中都是这样工作的)。
如果您使用 Javakeytool
生成 CSR,则私钥存储在 Java 密钥库文件中(如果您未指定自定义路径,则它将位于~/.keystore
)。要从 Java 密钥库中提取密钥并将其转换为 PEM 格式:
使用
keytool -list
以确保它显示您的密钥并检查密钥库格式。如果是 PKCS12,请跳至步骤 3。如果您有 JKS 格式的密钥库,请使用以下命令将其转换为 PKCS12 格式:
keytool -importkeystore -srckeystore <old_path> -destkeystore <new_path> -deststoretype PKCS12
一旦您有了 PKCS12 密钥库,就可以使用
openssl
它将其内容导出为 PEM 格式的文件:openssl pkcs12 -in <old_path> -out <new_path> -nodes
证书签名请求与自签名证书非常相似;它充当您拥有密钥的证明,但密钥本身永远不会离开您的系统。 CA 只是将您提供的 CSR 转换为真正的证书并将其返回。 在所有阶段,证书或 CSR 都完全由公开信息组成,并且永远不会受到密码保护。
据我所知,WebPKI CA(例如 GlobalSign)实际上是禁止根据 CA/B 论坛规则,证书颁发机构不能为客户生成私钥,如果私钥“泄露”,则必须撤销证书。
答案2
感谢您的帮助。我有点糊涂了。SSL 供应商提供了带有密码的 Java PKCS 文件。我搞不清楚密码、密码短语和密钥库密码。这次我们只得到了 CSR,所以这就是困惑所在。