3

objEnroll.CreatePFX在唯一的返回类型是字符串的地方遇到了麻烦,我需要的是与打开证书 MMC 并导出 PFX 时发生的情况相当的二进制输出。

这很重要,因为我需要原始 PFX 格式,以便将私钥导入 OSX 和 iPhone。

    CX509Enrollment objEnroll = new CX509Enrollment();
   objEnroll.InitializeFromTemplateName(
                X509CertificateEnrollmentContext.ContextUser,
                templateName);
   // ...
   objEnroll.Enroll();
   string pfxString = objEnroll.CreatePFX("q", PFXExportOptions.PFXExportEEOnly, EncodingType.XCN_CRYPT_STRING_BINARY);

设置EncodingType它以便正确转换为二进制输出的正确方法是什么?(类似于 Windows 证书导出)

4

1 回答 1

3

只需将base64字符串写入文件

System.IO.File.WriteAllText("MyFile.pfx", pfxString);

Windows 将处理 PFX。

您还可以使用将 base64 转换为二进制

System.IO.File.WriteAllBytes("MyFile.pfx", System.Convert.FromBase64String(pfxString));
于 2014-07-10T08:14:12.577 回答