使用PowerShell从CRT生成PFX(从CSR创建到PFX生成全流程)
证书请求合并及PFX导出操作指南
核心疑问解答
你之前的猜测是正确的,通过certreq.exe生成CSR时,对应的私钥会默认存储在本地计算机的「证书注册请求(Certificate Enrollment Requests)」存储区,无需提前导出该存储区的待处理文件搭配OpenSSL使用,通过Windows原生工具即可完成全流程操作。
完整操作步骤
- 确认GoDaddy返回的CRT文件已下载到本地,且生成CSR时的配置中已开启私钥可导出权限(CSR配置inf文件中需包含
Exportable = TRUE参数) - 执行
certreq.exe命令完成证书请求合并,自动匹配存储区的私钥与下发的CRT:certreq.exe -accept -machine "C:\存放路径\godaddy下发的证书.crt"
参数说明:-machine代表操作本地计算机上下文的证书存储,如果你是在当前用户上下文生成的CSR,移除该参数即可 - 合并完成后证书会自动转移到本地计算机的「个人」证书存储区,执行以下PowerShell命令导出PFX文件:
- 按域名匹配获取对应证书对象:
$cert = Get-ChildItem Cert:\LocalMachine\My | Where-Object {$_.Subject -like "*你的证书域名*"} | Select-Object -First 1 - 定义PFX文件的保护密码:
$pfxPwd = ConvertTo-SecureString "自定义PFX密码" -Force -AsPlainText - 执行PFX导出:
Export-PfxCertificate -Cert $cert -FilePath "C:\导出路径\最终证书.pfx" -Password $pfxPwd
- 按域名匹配获取对应证书对象:
额外说明
如果需要将私钥提取出来配合OpenSSL在非Windows环境使用,才需要先导出PFX后再通过OpenSSL命令拆分私钥和证书,常规IIS使用场景下无需该操作。
内容的提问来源于stack exchange,提问作者Iamppmz
相关产品推荐
相关产品推荐

