WinFuture-Forum.de: HOW-TO: Zertifikat für den Microsoft-Store mit openssl erstellen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

HOW-TO: Zertifikat für den Microsoft-Store mit openssl erstellen


#1 Mitglied ist offline   keegan1120 

  • Gruppe: Mitglieder
  • Beiträge: 2
  • Beigetreten: 06. Februar 18
  • Reputation: 1

geschrieben 06. Februar 2018 - 08:45

Morgen,

ich habe mich gestern um einige Längen quer gestellt, als ich versuchte mithilfe von openssl ein Zertifikat für eine App im Microsoft Store zu erstellen. Anders als bei einer 'normalen' exe werden die Zertifikate benötigt und selber signiert.

1. Ich bin also in einen neuen Ordner gegangen und habe erstmal einen Key und eine Extension erstellt, da Microsoft einen EKU (Ehanced Key Usage) mit der Info, dass es sich um ein Code-Zertifikat handelt von uns will. Also eine neue txt-Datei mit dem Namen cs.cnf erstellt und mit Inhalt gefüllt:

#inhalt cs.cnf
extensions = extend
[req]
prompt = no
distinguished_name = dn-param

[dn-param]
CN = XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

[extend]
basicConstraints = CA:FALSE
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always
extendedKeyUsage=1.3.6.1.5.5.7.3.3 #codeSigning

[policy]
#empty 



Das CN-Feld bekommt ihr in eurer App im Dev-Center unter App-Verwaltung -> App-Identität -> Paket/Identität/Herausgeber.

2. Nun muss die Datei nur noch verwurstet werden. Hierfür genügt ein wenig Konsolen-Magic. Wichtig: Ihr müsst openssl als Path gesetzt haben, oder vor openssl den Pfad in den bin-order dran hängen.

Um jetzt einen Schlüssel und eine CSR zu erstellen, brauchen wir folgenden Befehl:
openssl req -newkey rsa:4096 -keyout cs.key -out cs.csr -config cs.cnf -extensions extend



Ihr werdet nach einem Passwort für den privaten Schlüssel gefragt und nach einer Bestätigung des Passwortes. Bitte wählt was sicheres (Nicht 123 oder password) und schreibt es auf!

3. Jetzt möchte ich das Zertifikat generieren. Da Microsoft das x509-Format benötigt, welches ebenfalls das EKU-Feld beinhaltet, verwenden wir folgenden Befehl:

openssl x509 -in cs.csr -out cs.crt -req -signkey cs.key -days 1001 -extfile cs.cnf



Wir werden nach dem Kennwort für den privaten Schlüssel aus Schritt 2 gefragt.

Wer genau hinsieht merkt, dass ich cs.cnf zweimal verwendet habe. Das liegt daran, dass ich die Befehle möglichst klein halten will und sehr viele Parameter in die Datei ausgelagert habe.

4. Jetzt haben wir gefühlt 20 cs.*-Dateien und Microsoft braucht noch eine andere. Die pfx-Datei (pkcs12) ist ein großer Kochtopf, in dem wir jetzt den Schlüssel und das Zertifikat zusammen mit folgenden Befehl rein werfen:

openssl pkcs12 -export -out cs.pfx -keysig -inkey cs.key -in cs.crt



Wir werden einmal nach dem Kennwort für den privaten Schlüssel aus Schritt 2 und einmal nach einem Export-Kennwort gefragt. Als Export-Kennwort verwenden wir ein anderes als für den Schlüssel, jedoch genauso sicher!

That's it!

Das Zertifikat ist nun einsatzbereit und kann z.B. bei Phonegap auf die Buildserver geschossen werden.



Liebe Grüße
Hendrik

Dieser Beitrag wurde von keegan1120 bearbeitet: 06. Februar 2018 - 20:45

1

Anzeige



#2 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 06. Februar 2018 - 18:06

Danke für das Howto. :)


Nur zwei kleine Dinge, als Überlegung:

-1- Vielleicht in den Titel dazuschreiben, daß es in Richtung How-to geht und nicht eine Frage ist?
-2- PowerShell kennt (ich glaub ab Win10(Clients; Server definitiv früher), aber bitte nicht drauf festnageln) das cmdlet "New-SelfSignedCertificate". Damit kann man sich vergleichsweise einfach ein selbstsigniertes Zertifikat jeder Art erstellen (einschließlich für Authenticode).

OpenSSL kann natürlich sehr viel mehr, gar keine Frage.

Wenn man OpenSSL unter Windows verwenden will, dann gibt es das bei shininglightpro.com bzw als Teil von MSYS2.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#3 Mitglied ist offline   keegan1120 

  • Gruppe: Mitglieder
  • Beiträge: 2
  • Beigetreten: 06. Februar 18
  • Reputation: 1

geschrieben 06. Februar 2018 - 20:42

N'Abend,

das mit dem How-To habe ich im Titel leider verhauen und habs ergänzt. Das Ding ist, dass ich eigentlich ein Linux-Nutzer mit einem Microsoft Windows Phone bin :rolleyes:

Daher wollte ich es mit OpenSSL mal gemacht haben.

PS: Hier gibt es auch precompiled win32 openssl-binaries: https://indy.fulgan.com/SSL/

Gruß,
Hendrik

Dieser Beitrag wurde von keegan1120 bearbeitet: 06. Februar 2018 - 20:52

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0