我有一个具有以下实现的类:
public class ObjectSer
{
public X509Certificate cer;
public string name;
}
我想使用稍后在其他应用程序中加载System.Xml.Serialization;
XML 文件中序列化 XML 文件中的ObjectSer
实例。当我检查输出文件时,只有name
属性。经过一些研究,我发现我应该将证书导出到 byte[],所以我修改了ObjectSer
实现:
public class ObjectSer
{
public X509Certificate cer;
public string name;
public byte[] exportedBytes;
}
现在,我可以保存和加载证书,但我不想将证书导出的字节作为纯文本存储在 XML 文件中。我的问题是:
- 对于网络安全措施,是否有任何其他方法可以执行 X509Certifacate 实例的序列化和序列化?
- 我是否应该在保存之前添加另一层来加密
exportedBytes
并在加载之前解密?
为什么要将 X509 证书序列化为 XML,但总的来说,我会说不要。如果您坚持这样做,我建议您对字节数组进行 base64 编码并将其保存在 xml 中。
至于你关于安全问题的问题;您应该只存储 X509 证书的公共部分,并将私钥保存在另一个位置。
我推荐以下文章在 .NET 中使用 X.509 证书的八个技巧,其中包含一些很棒的技巧。
您可以将加密的证书及其私钥存储在 PKCS 12 格式的文件中。下面是有关 .NET PKCS 12 API 的一些信息。