Zertifikate für Visual Studio Deploys

Die Schritte sollten in einem eigenen Ordner durchgeführt werden, damit keine Verwechslungen mit anderen Dateien auftreten können.

Achtung: Die fettgedruckten Befehlszeilen müssen immer in einer Zeile liegen!

Als erstes generieren wir einen privaten Schlüssel für unser Zertifikat. Dazu verwenden wir OpenSSL und einen RSA-Schlüssel ohne Passwort:

$ openssl genrsa -out privkey.pem 2048 Generating RSA private key, 2048 bit long modulus ......+++ .........+++ e is 65537 (0x10001)
Zu diesem Schlüssel wird dann ein Self-Signed-Zertifikat generiert. (An dieser Stelle kann natürlich auch ein CSR für z.B. CaCert erstellt werden)
$ openssl req -new -x509 -key privkey.pem -out cacert.pem -days 4000 [...] Country Name (2 letter code) [AU]:DE State or Province Name (full name) [Some-State]:Niedersachsen Locality Name (eg, city) []:Weyhe Organization Name (eg, company) [Internet Widgits Pty Ltd]:K. Ahlers Organizational Unit Name (eg, section) []:Software Development Common Name (eg, YOUR name) []:K. Ahlers Email Address []:knut@ahlers.me
In diesem Fall wurde ein Zertifikat für 4000 Tage generiert. Die Daten unten sollten natürlich angepasst werden.

Im letzten Schritt wird dann aus den Schlüsseldateien ein PKCS#12-Zertifikat erstellt, welches vom Visual Studio verarbeitet werden kann:

$ openssl pkcs12 -export -in cacert.pem -inkey privkey.pem -out cert.pfx -name "MyAPP" Enter Export Password: Verifying - Enter Export Password:
Achtung: An dieser Stelle muss ein Passwort eingegeben werden. Windows akzeptiert es nicht, wenn eine PKCS#12-Datei nicht passwortgeschützt ist.

Diese Datei wird dann in das Projekt kopiert und im Signierungs-Dialog ausgewählt. Schon ist die Anwendung mit einem Zertifikat signiert, welches nahezu eine Ewigkeit gültig ist ;)