Прикрепите сертификат .pfx к исполняемому файлу - PullRequest
0 голосов
/ 18 января 2012

Мне нужно развернуть программное обеспечение для n клиентов, которые установят сертификат и будут его использовать.Я не хочу развертывать два файла (.pfx и exe), только один (.exe, который будет содержать .pfx).

Сейчас я делаю импорт сертификата из местоположения.*

X509Certificate2^ x509 = gcnew X509Certificate2;
x509->Import( "C:\\Tmp\\certficate.pfx" );

Возможно ли это?

Ответы [ 2 ]

11 голосов
/ 18 января 2012

Вы всегда можете вставить данные сертификата в качестве ресурса.

Одно предупреждение: если кто-то получит исполняемый файл, он может довольно легко извлечь файл PFX.

Вы можете безопасно распространять исполняемый файл?

Вот несколько грубых шагов, взятых из: http://www.spikezilla -software.com / blog /? P = 24

  • Добавьте PFX в свой проект. Затем щелкните один раз по файлу и в окне «Свойства» установите для параметра «Действия при построении» значение «Встроенный ресурс»
  • Считайте встроенный файл PFX и импортируйте сертификат

Это 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");
1 голос
/ 23 февраля 2016

Это сработало для меня, как только я его встроил.

byte[] cert = Properties.Resources.nameOfCertificate;
X509Certificate2 x509 = new X509Certificate2();
x509.Import(cert, "password", X509KeyStorageFlags.MachineKeySet);
...