ssl-certificate - 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 文件只是一个容器,可以同时包含证书和私钥。将这两个文件合二为一时我错过了什么?
解决方案
从 PEM 页眉和页脚之间的私钥文件中删除所有非 base64 内容。在给定的情况下,从私钥文件中删除这些行:
Proc-Type: 4,ENCRYPTED 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 保护密码。
推荐阅读
- javascript - viewer.js 在 IE 11 中的选项卡切换处触发 addEventListener 调整大小,导致错误和崩溃
- html - sp_notify_operator 的 T-SQL Server 代理格式化消息
- selenium - 在 Selenium 中处理 Windows 打开文件对话框
- javascript - 将数组添加到多维数组或对象中
- c# - 未找到密钥异常 - Unity Json
- java - 通用对象的 HashCode 实现
- nlp - 如何从训练文本中构建干净的词汇表?
- ruby-on-rails - Rails logger 删除日志文件后也不释放日志文件;它不断占用磁盘空间
- javascript - 从 Angular 6 防护中的 BehaviorSubject 返回值
- javascript - 重新加载 Img 源时 ReactJS 内存泄漏