我有一个用 opendkim 生成的 PEM RSA 私钥:
# dkim-genkey -t -s code001 -d domain.com
为了将其与 Exchange 一起使用,我需要使用此命令将其转换为 pfx:
# openssl pkcs12 -export -in code001.private -nodes -out code001.pfx -nokeys
Enter Export Password:
Verifying - Enter Export Password:
4192275:error:0D0C6070:asn1 encoding routines:ASN1_item_pack:encode error:asn_pack.c:170:
但是我收到这个错误,我不知道这是否是正确的方法。
答案1
它失败了,因为code001.private
只包含一个 RSA 密钥,而 pkcs12 需要证书。此外,正如 Stephane 所说,-nokeys 选项将导致 openssl 跳过私钥。
您可以使用以下方式生成证书
openssl req -new -x509 -key code001.private -out code001.pem
并填写交互式问题,然后使用以下方式生成 pfx
cat code001.private code001.pem |openssl pkcs12 -export -out code001.pfx
答案2
该-nokeys
参数将导致 OpenSSL 不在输出中包含任何私钥,并且该-nodes
参数将要求它不加密任何私钥。无论如何,这都不会产生可用的 PKCS#12 文件。
尝试一下:
openssl pkcs12 -export -in code001.private -out code001.pfx
答案3
尝试:openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt