3

我遇到了objEnroll.CreatePFX的問題,其中唯一的返回類型是字符串,我需要的是與打開證書MMC並導出PFX時發生的情況相當的二進制輸出。如何從CertEnroll導出二進制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證書導出)

回答

3

只寫的base64字符串轉換成文件

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

Windows將處理PFX。

您也可以base64轉換使用爲二進制

System.IO.File.WriteAllBytes("MyFile.pfx", System.Convert.FromBase64String(pfxString));