问题描述
我正在尝试使用certmgr.msc管理单元导入证书。
我的证书在.crt文件中:
-----BEGIN CERTIFICATE-----
MIIDezCCAmMCCQDFkO/4a6XfiDANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJT
...
ncpMXzlNEE77e45mpTC/WWgoqQb7XMI+S1iPbluBVw==
-----END CERTIFICATE-----
-----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部分之前,但是导入显示The file type is not recognizable.
我读到.pem文件只是一个容器,可以同时包含证书和私钥。将两个文件合并为一个,我错过了什么?
解决方法
-
从私钥文件中删除PEM标头和页脚之间的所有非base64内容。在给定的情况下,请从私钥文件中删除以下行:
过程类型:4,已加密 DEK-Info:AES-256-CBC,FE5EDCD941BAD3DF54D29902EAB5EE48
-
重命名密钥文件以匹配证书文件名,例如
mycert.pem
和mycert.key
,其中mycert.pem
是公用证书文件,mycert.key
是私钥文件。并将它们放在同一文件夹中。然后运行以下certutil.exe
命令:
。
certutil -mergepfx mycert.pem mycert.pfx
其中mycert.pfx
是PFX的输出文件。系统将提示您创建PFX保护密码。