首页 > 解决方案 > Windows:当证书和私钥在不同的文件中时如何导入?

问题描述

我正在尝试使用 certmgr.msc 管理单元导入证书。

我的证书在 .crt 文件中:

-----BEGIN CERTIFICATE-----
MIIDezCCAmMCCQDFkO/4a6XfiDANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJT
...
ncpMXzlNEE77e45mpTC/WWgoqQb7XMI+S1iPbluBVw==
-----END CERTIFICATE-----

私钥在 .key 文件中,我有密码:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-256-CBC,FE5EDCD941BAD3DF54D29902EAB5EE48

9zZcw6zCfL6u8/HuBD/a57GSjAYb3DYzdjN8colcbWDTOSBpmbilapKdXd/XmVlM
.....
rjxIMhRRKCtdN0WZHwKU9wO/sAzllrx9lyt7qeEc3wSYYMD6bvdFjA9CXE27eQqW
-----END RSA PRIVATE KEY-----

导入向导只允许选择单个文件。我尝试将上述两个文件如图所示组合成一个文件,但导入忽略了私钥。

我尝试将 RSA PRIVATE KEY 部分放在 CERTIFICATE 部分之前,但 import 说The file type is not recognizable.

我读到 .pem 文件只是一个容器,可以同时包含证书和私钥。将这两个文件合二为一时我错过了什么?

标签: ssl-certificatex509certificate

解决方案


  1. 从 PEM 页眉和页脚之间的私钥文件中删除所有非 base64 内容。在给定的情况下,从私钥文件中删除这些行:

    Proc-Type: 4,ENCRYPTED DEK-Info: AES-256-CBC,FE5EDCD941BAD3DF54D29902EAB5EE48

  2. 重命名密钥文件以匹配证书文件名,例如mycert.pemmycert.key,其中mycert.pem是公共证书文件和mycert.key私有密钥文件。并将它们放在同一个文件夹中。然后运行以下certutil.exe命令:

.

certutil -mergepfx mycert.pem mycert.pfx

mycert.pfxPFX 的输出文件在哪里。系统将提示您创建 PFX 保护密码。


推荐阅读