29 lines
928 B
C#
29 lines
928 B
C#
using System.Security.Cryptography;
|
||
using System.Security.Cryptography.X509Certificates;
|
||
|
||
namespace MasstransferCommon.Utils;
|
||
|
||
public class CertUtil
|
||
{
|
||
public static void ConvertCertToPfx(string certPath, string keyPath, string pfxPath, string password)
|
||
{
|
||
// 加载证书文件(.cer 或 .crt)
|
||
var cert = new X509Certificate2(certPath);
|
||
|
||
// 加载私钥文件(.key)
|
||
var keyContent = File.ReadAllText(keyPath);
|
||
|
||
// 从PEM格式的私钥中提取RSA密钥
|
||
var privateKey = RSA.Create();
|
||
privateKey.ImportFromPem(keyContent.ToCharArray());
|
||
|
||
// 创建带有私钥的X509Certificate2对象
|
||
var certWithPrivateKey = cert.CopyWithPrivateKey(privateKey);
|
||
|
||
// 导出为PFX格式
|
||
var pfxData = certWithPrivateKey.Export(X509ContentType.Pfx, password);
|
||
|
||
// 保存PFX文件
|
||
File.WriteAllBytes(pfxPath, pfxData);
|
||
}
|
||
} |