我有很多自签名证书,这些证书将分配给连接。与其将它们存储在文件共享中,不如将它们存储在SQL Server中。我当然可以将证书从文件加载到X509Certificate2中,但是将其保存到数据库中会引起问题。
这是我正在使用的测试代码:
byte[] bytes = File.ReadAllBytes("idp.pfx");
var convertedCert = new X509Certificate2( bytes,"password");
string test = convertedCert.ToString();
byte[] test2 = Encoding.UTF8.GetBytes(test);
var newCert = new X509Certificate2(test2);
我要做的是读取一个.PFX
文件并将其保存到SQL Server数据库中。我需要能够将.pfx
文件写入数据库,并在以后调用它以对该特定连接进行加密/解密。
但是现在,我只是试图来回切换格式以证明这是可行的,然后再将存储添加到数据库中。
运行上面的代码时,我在代码的最后一行得到错误:
An unhandled exception of type 'System.Security.Cryptography.CryptographicException' occurred in mscorlib.dll
找不到请求的对象。
因此,X509Certificate2(byte [])将其视为方法X509Certificate2(string fileName)的字符串版本,并尝试加载文件。
我认为发生的是字节数组转换未将其转换为正确的格式...但是什么是正确的格式?