Eine Möglichkeit besteht darin, ein Zertifikat zum Testen zu erstellen, es in eine Basis-64-Zeichenfolge zu konvertieren und dann das Zertifikat aus dieser Zeichenfolge im Code zu lesen. Diese vier Schritte erfordert:
1. Erstellen Sie die CER und .pvk Dateien
Um dies zu tun, man das MakeCert.exe
Tool verwenden können (beachten Sie, dass this tool is deprecated, und Microsoft empfiehlt, die New-SelfSignedCertificate PowerShell cmdlet verwende ich. habe das nicht versucht, aber vermutlich würde jede Methode funktionieren.). Dies ist ein .NET Framework-Tool und ist als Teil des Windows SDK enthalten. Ich habe zufällig das Windows 7 SDK auf meinem Computer installiert, also befand sich diese Exe für mich unter C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\
, aber Ihre Ergebnisse können variieren. Dieses Tool macht genau das, was wir wollen! Vom documentation:
Das Zertifikat Creation Tool generiert X.509-Zertifikate nur zu Testzwecken. Es erstellt ein öffentliches und privates Schlüsselpaar für digitale Signaturen und speichert es in einer Zertifikatsdatei. Dieses Tool ordnet das Schlüsselpaar auch dem angegebenen Herausgebernamen zu und erstellt ein X.509-Zertifikat, das einen benutzerdefinierten Namen an den öffentlichen Teil des Schlüsselpaars bindet.
Aus Gründen der diesem Beispiel wollen wir das CERT TestCert
nennen. Um die cer und .pvk-Dateien zu erstellen, führen Sie den folgenden Befehl ein:
MakeCert.exe -sv TestCert.pvk -n "cn=Test Certificate" TestCert.cer -r
Die -sv
Flagge zeigt den Namen der .pvk-Datei zu erstellen, die -n
Flagge ist der X.500-konformen Namen unser Zertifikat (es ist am einfachsten zu verwenden "cn = CertName" Format wie oben), und die -r
Flag zeigt an, dass es selbstsigniert sein wird. Wenn Sie das Anfangs- und Enddatum für Ihr Zertifikat angeben möchten, verwenden Sie die Flags -b
und -e
und formatieren Sie die Daten als mm/dd/yyyy
(das Zertifikat ist standardmäßig vom Tag der Erstellung bis 2039 gültig). Wenn Ihr Zertifikat für die Verschlüsselung und Entschlüsselung verwendet wird (wie meiner), müssen Sie die Flags -sky Exchange
und -pe
angeben. Sie werden während des Vorgangs aufgefordert, ein Kennwort für das Zertifikat zu erstellen.
2. Erstellen Sie die.pfx-Datei
Dies kann mit dem pvk2pfx.exe
-Tool durchgeführt werden, das an der gleichen Stelle wie MakeCert.exe
sein sollte. Dieses Tool konvertiert eine .pvk- und .cer-Datei in eine PFX-Datei. Um dieses Werkzeug zu verwenden, den folgenden Befehl ein:
pvk2pfx.exe -pvk TestCert.pvk -spc TestCert.cer -pfx TestCert.pfx
-pvk
Die Flagge ist der Dateiname der Datei zu verwenden .pvk (erstellt in Schritt 1), wobei die -csp
Flagge ist der Dateiname der. cer-Datei zu verwenden (erstellt in Schritt 1), und das -pfx
-Flag ist der Name für die PFX-Datei, die erstellt wird. Während des Prozesses werden Sie das Passwort zur Eingabe aufgefordert werden, den Sie in Schritt 1.
3. Holen Sie sich das Basis 64 Stringdarstellung der PFX-Datei
Das ist ziemlich einfach, und kann sein erledigt mit dem Powershell Cmdlet Get-Content
und der System.Convert.ToBase64String
Methode. Dazu öffnet sich ein Fenster Powershell und führen Sie die folgenden Schritte aus:
$content = Get-Content TestCert.pfx -Encoding Byte
[System.Convert]::ToBase64String($content) | Out-File "TestCert.txt"
Jetzt haben wir die Basis 64-String für unsere PFX-Datei in TestCert.txt. programmatisch
4. das Zertifikat erstellen
Jetzt können wir das Zertifikat im Code erstellen wie folgt:
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);
}
}
Vielleicht wie [das] (http://stackoverflow.com/a/ 22237794/3245057)? – pepo