/// <summary> /// 从证书链反序列化证书链集合 /// </summary> /// <param name="certificate">证书链</param> private static List <X509Certificate2> ReadPemCertChain(string certificate) { var certChainStr = File.Exists(certificate) ? File.ReadAllText(certificate) : Base64Util.IsBase64String(certificate) ? Encoding.ASCII.GetString(Convert.FromBase64String(certificate)) : throw new AlipayException("证书文件不存在或证书的Base64String不正确!"); var certStrArr = certChainStr.Split("-----END CERTIFICATE-----", StringSplitOptions.RemoveEmptyEntries); var certs = new List <X509Certificate2>(); foreach (var certStr in certStrArr) { certs.Add(new X509Certificate2(Encoding.ASCII.GetBytes(certStr + "-----END CERTIFICATE-----"))); } return(certs); }
/// <summary> /// 反序列化证书 /// </summary> /// <param name="certificate">证书</param> public static X509Certificate2 Parse(string certificate) { return(File.Exists(certificate) ? new X509Certificate2(certificate) : Base64Util.IsBase64String(certificate) ? new X509Certificate2(Convert.FromBase64String(certificate)) : throw new AlipayException("证书文件不存在或证书的Base64String不正确!")); }