我必须将软件部署到将安装证书并使用它的 n 个客户端。我不想只部署两个文件(.pfx 和 exe)(.exe 将包含 .pfx)。
我现在正在做的是从某个位置导入证书。
X509Certificate2^ x509 = gcnew X509Certificate2;
x509->Import( "C:\\Tmp\\certficate.pfx" );
可能吗 ?
我必须将软件部署到将安装证书并使用它的 n 个客户端。我不想只部署两个文件(.pfx 和 exe)(.exe 将包含 .pfx)。
我现在正在做的是从某个位置导入证书。
X509Certificate2^ x509 = gcnew X509Certificate2;
x509->Import( "C:\\Tmp\\certficate.pfx" );
可能吗 ?
您始终可以将证书数据作为资源嵌入。
但是有一个警告:如果有人获得了可执行文件,他们可以很容易地提取 PFX 文件。
您是否能够安全地分发可执行文件?
以下是一些粗略的步骤,摘自:http ://www.spikezilla-software.com/blog/?p=24
这是 C#,但您应该能够很容易地转换为 C++/CLI:
var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MyFile.pfx");
var bytes = new byte[stream.Length];
stream.Read(bytes, 0, bytes.Length);
var cert = new X509Certificate2(bytes, "certPassword");
一旦我嵌入它,这对我有用。
byte[] cert = Properties.Resources.nameOfCertificate;
X509Certificate2 x509 = new X509Certificate2();
x509.Import(cert, "password", X509KeyStorageFlags.MachineKeySet);