Один из способов сделать это - создать сертификат для тестирования, преобразовать его в базовую 64 строку и затем прочитать сертификат из этой строки в коде. Для этого требуется четыре шага:
1. Создайте .cer и .pvk файлы
Для этого можно использовать инструмент MakeCert.exe
(обратите внимание, что this tool is deprecated и Microsoft рекомендует использовать New-SelfSignedCertificate PowerShell cmdlet I. не пробовал это, но, предположительно, какой-либо метод работал бы.). Это средство .NET Framework и входит в состав Windows SDK. У меня на компьютере установлена Windows 7 SDK, поэтому для меня этот exe находился под C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\
, но ваши результаты могут отличаться. Этот инструмент делает именно то, что мы хотим! Из documentation:
Инструмент Создание сертификатов генерирует сертификаты X.509 только для целей тестирования. Создает пару открытых и закрытых ключей для цифровых подписей и сохраняет их в файле сертификата. Этот инструмент также связывает пару ключей с указанным именем издателя и создает сертификат X.509, который связывает указанное пользователем имя с открытой частью пары ключей.
Для этого примера позвоним cert TestCert
. Для создания .CER и .pvk файлов, выполните следующую команду:
MakeCert.exe -sv TestCert.pvk -n "cn=Test Certificate" TestCert.cer -r
-sv
флаг указывает имя .pvk создаваемого файла, то -n
флаг является X.500-совместимые имя наш сертификат (проще всего использовать «cn = CertName», как указано выше), а флаг -r
означает, что он будет подписан сам по себе. Если вы хотите указать даты начала и окончания вашего сертификата, используйте флагови -e
и отформатируйте даты как mm/dd/yyyy
(по умолчанию сертификат действителен со дня создания до 2039 года). Если ваш сертификат будет использоваться для шифрования и дешифрования (например, мой), вы должны указать флаги -sky Exchange
и -pe
. Вам будет предложено создать пароль для сертификата во время процесса.
2. Создайте.pfx file
Это можно сделать с помощью инструмента pvk2pfx.exe
, который должен находиться в том же месте, что и MakeCert.exe
. Этот инструмент преобразует файл .pvk и .cer в файл .pfx. Чтобы использовать этот инструмент, выполните следующую команду:
pvk2pfx.exe -pvk TestCert.pvk -spc TestCert.cer -pfx TestCert.pfx
Флаг -pvk
это имя файла файла .pvk использовать (созданный на шаге 1), то -csp
флаг является имя файла. cer для создания (созданного на шаге 1), а флаг -pfx
- это имя для файла .pfx, который будет создан. Во время процесса, вам будет предложено ввести пароль, созданный на шаге 1.
3. Получить строковое представление PFX-файла
Это довольно просто база 64, и может быть сделанный с помощью командлета Powershell Get-Content
и метода System.Convert.ToBase64String
. Для этого откройте окно Powershell и выполните следующие действия:
$content = Get-Content TestCert.pfx -Encoding Byte
[System.Convert]::ToBase64String($content) | Out-File "TestCert.txt"
Теперь у нас есть строка базы 64 для нашего файла .pfx в TestCert.txt.
4. Создание сертификата программно
Теперь мы можем создать сертификат в коде следующим образом:
namespace MyTests
{
using System;
using System.Security.Cryptography.X509Certificates;
public class MyTests
{
// Copy and paste the string from TestCert.txt here.
private const string CertText = "<text>";
// Use the password you created in steps 1 and 2 here.
private const string Password = "p4ssw0rd";
// Create the certificate object.
private readonly X509Certificate2 TestCert = new X509Certificate2(
Convert.FromBase64String(MyTests.CertText),
MyTests.Password);
}
}
Может быть, как [это] (http://stackoverflow.com/a/ 22237794/3245057)? – pepo