it-swarm.com.de

Wie erstelle ich eine PFX-Datei aus einem Zertifikat und einem privaten Schlüssel?

Ich benötige eine PFX-Datei, um https auf der Website von IIS zu installieren.

Ich habe zwei separate Dateien: Zertifikat (.cer oder pem) und privater Schlüssel (.crt), aber IIS akzeptiert nur PFX-Dateien.

Ich habe offensichtlich das Zertifikat installiert und es ist im Zertifikatsmanager (MMC) verfügbar, aber wenn ich Zertifikatexport Wizard wähle, kann ich das PFX-Format nicht auswählen (es ist ausgegraut)

Gibt es Tools dafür oder C # -Beispiele für die programmgesteuerte Ausführung?

317
jlp

Sie müssen openssl verwenden.

openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt

Die Schlüsseldatei ist nur eine Textdatei mit Ihrem privaten Schlüssel.

Wenn Sie eine Stammzertifizierungsstelle und Zwischenzertifikate haben, schließen Sie diese ebenfalls mit mehreren -in -Parametern ein

openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt -in intermediate.crt -in rootca.crt

Sie können openssl von hier aus installieren: openssl

463
jdehlin

Das Microsoft Pvk2Pfx-Befehlszeilenprogramm verfügt anscheinend über die Funktionen, die Sie benötigen:

Pvk2Pfx (Pvk2Pfx.exe) ist ein Befehlszeilentool, mit dem in SPC-, CER- und PVK-Dateien enthaltene Informationen zu öffentlichen und privaten Schlüsseln in eine PFX-Datei (Personal Information Exchange) kopiert werden.
http://msdn.Microsoft.com/en-us/library/windows/hardware/ff550672 (v = vs.85) .aspx

Hinweis: Wenn Sie eine C # -Lösung benötigen/möchten/bevorzugen, sollten Sie die Verwendung der API http://www.bouncycastle.org/ in Betracht ziehen.

36
Seymour

Wenn Sie nach einer Windows-Benutzeroberfläche suchen, schauen Sie sich DigiCert an. Ich habe das gerade benutzt und es war ziemlich einfach.

Auf der Registerkarte SSL habe ich zuerst das Zertifikat importiert. Nachdem ich das Zertifikat ausgewählt hatte, konnte ich es mit und ohne Schlüsseldatei als PFX exportieren.

https://www.digicert.com/util

30
joelnet

Sie brauchen weder openssl noch makecert oder irgendetwas davon. Sie benötigen auch nicht den persönlichen Schlüssel, den Sie von Ihrer Zertifizierungsstelle erhalten haben. Ich kann fast garantieren, dass das Problem darin besteht, dass Sie erwarten, die von Ihrer Zertifizierungsstelle bereitgestellten Schlüssel- und CER-Dateien verwenden zu können, diese basieren jedoch nicht auf der Methode "IIS". Ich habe es so satt, schlechte und schwierige Informationen hier draußen zu sehen, dass ich beschlossen habe, das Thema und die Lösung zu bloggen. Wenn Sie erkennen, was los ist und sehen, wie einfach es ist, werden Sie mich umarmen wollen :)

SSL-Zertifikate für IIS mit PFX ein für alle Mal - SSL und IIS Erklärt - http://rainabba.blogspot.com/2014/03/ssl-certs- for-iis-with-pfx-once-and-for.html

Verwenden Sie IIS "Server Certificates" UI, um "Certificate Request" zu generieren (die Details dieser Anfrage sind nicht im Umfang dieses Artikels enthalten, aber diese Details sind kritisch). Dadurch erhalten Sie eine CSR, die für IIS vorbereitet ist. Anschließend geben Sie diesen CSR an Ihre Zertifizierungsstelle weiter und fordern ein Zertifikat an. Dann nehmen Sie die CER/CRT-Datei, die sie Ihnen geben, und kehren zu IIS zurück, "Complete Certificate Request" (Zertifikatanforderung abschließen), an der Stelle, an der Sie die Anforderung generiert haben. Möglicherweise werden Sie nach einer .CER-Datei gefragt, und Sie haben möglicherweise eine .CRT-Datei. Sie sind das gleiche. Ändern Sie einfach die Erweiterung oder verwenden Sie das Dropdown-Menü . , um Ihre .CRT-Datei auszuwählen. Geben Sie nun einen richtigen "Anzeigenamen" ein (* .IhreDomäne.com, IhreDomäne.com, IhreDomäne.com usw.). DIESES IS WICHTIG! Dies MUSS mit dem übereinstimmen, für das Sie die CSR eingerichtet haben und für das Sie von Ihrer Zertifizierungsstelle bereitgestellt wurden. Wenn Sie nach einem Platzhalter gefragt haben, muss Ihre Zertifizierungsstelle einen Platzhalter genehmigt und generiert haben, und Sie müssen denselben verwenden. Wenn Ihre CSR für foo.yourdomain.com erstellt wurde, MÜSSEN Sie diese in diesem Schritt bereitstellen.

27
rainabba

https://msdn.Microsoft.com/en-us/library/ff699202.aspx

((relevante Zitate aus dem Artikel sind unten))

Als Nächstes müssen Sie die PFX-Datei erstellen, mit der Sie Ihre Bereitstellungen signieren. Öffnen Sie ein Eingabeaufforderungsfenster und geben Sie den folgenden Befehl ein:

PVK2PFX –pvk yourprivatekeyfile.pvk –spc yourcertfile.cer –pfx yourpfxfile.pfx –po yourpfxpassword

wo:

  • pvk - yourprivatekeyfile.pvk ist die private Schlüsseldatei, die Sie in Schritt 4 erstellt haben.
  • spc - yourcertfile.cer ist die Zertifikatdatei, die Sie in Schritt 4 erstellt haben.
  • pfx - yourpfxfile.pfx ist der Name der PFX-Datei, die erstellt wird.
  • po - yourpfxpassword ist das Kennwort, das Sie der PFX-Datei zuweisen möchten. Sie werden aufgefordert, dieses Kennwort einzugeben, wenn Sie die PFX-Datei zum ersten Mal einem Projekt in Visual Studio hinzufügen.

(Optional (und nicht für das OP, sondern für zukünftige Leser) können Sie die .cer- und .pvk-Datei von Grund auf neu erstellen.) Beachten Sie, dass MM/TT/JJJJ Platzhalter für Start- und Enddatum sind. Eine vollständige Dokumentation finden Sie im MSDN-Artikel.

makecert -sv yourprivatekeyfile.pvk -n "CN=My Certificate Name" yourcertfile.cer -b mm/dd/yyyy -e mm/dd/yyyy -r
6
granadaCoder

Sie müssen das Makecert-Tool verwenden.

Öffnen Sie eine Eingabeaufforderung als admin und geben Sie Folgendes ein:

makecert -sky exchange -r -n "CN=<CertificateName>" -pe -a sha1 -len 2048 -ss My "<CertificateName>.cer"

Wobei <CertifcateName> = der Name Ihres zu erstellenden Zertifikats.

Anschließend können Sie das Zertifikat-Manager-Snap-In für die Verwaltungskonsole öffnen, indem Sie im Startmenü certmgr.msc eingeben, auf personal> certificates> klicken und Ihr Zertifikat sollte verfügbar sein.

Hier ist ein Artikel.

https://Azure.Microsoft.com/documentation/articles/cloud-services-certs-create/

6
BentOnCoding

Ich habe einen Link zu Ihrer Anforderung erhalten. CRT- und KEY-Dateien in einer PFX mit OpenSSL kombinieren

Auszüge aus dem obigen Link:

Zuerst müssen wir das Zertifikat der Stammzertifizierungsstelle aus der vorhandenen CRT-Datei extrahieren, da wir dies später benötigen. Öffnen Sie also die .crt-Datei und klicken Sie auf die Registerkarte Zertifizierungspfad.

Klicken Sie auf das oberste Zertifikat (in diesem Fall VeriSign) und klicken Sie auf Zertifikat anzeigen. Wählen Sie die Registerkarte Details und klicken Sie auf In Datei kopieren.

Wählen Sie ein Base-64-codiertes X.509-Zertifikat (.CER) aus. Speichern Sie es als rootca.cer oder ähnliches. Legen Sie es in den gleichen Ordner wie die anderen Dateien.

Benennen Sie es von rootca.cer in rootca.crt um. Nun sollten sich 3 Dateien in unserem Ordner befinden, aus denen wir eine PFX-Datei erstellen können.

Hier brauchen wir OpenSSL. Wir können entweder Download und Installation unter Windows oder einfach das Terminal unter OSX öffnen.

EDIT:

  1. Es gibt einen Support-Link mit schrittweisen Informationen zur Installation des Zertifikats.

  2. Exportieren Sie nach der erfolgreichen Installation das Zertifikat, wählen Sie das Format .pfx und geben Sie den privaten Schlüssel ein.

    Wichtiger Hinweis: : Um das Zertifikat im PFX-Format zu exportieren, müssen Sie die Schritte auf demselben Computer ausführen, von dem Sie das angefordert haben Zertifikat .

  3. Die importierte Datei kann auf den Server hochgeladen werden.

6
sudhAnsu63

Ich habe eine .pfx-Datei aus .key- und .pem-Dateien erstellt.

So openssl pkcs12 -inkey rootCA.key -in rootCA.pem -export -out rootCA.pfx

4
Siim Nelis

Dies ist bei weitem der einfachste Weg, * .cer in * .pfx-Dateien zu konvertieren:

Laden Sie einfach den portablen Zertifikatskonverter von DigiCert herunter: https://www.digicert.com/util/pfx-certificate-management-utility-import-export-instructions.htm

Führe es aus, wähle eine Datei aus und erhalte deine * .pfx !!

4
user1613797

Wenn Sie sagen, dass das Zertifikat in MMC verfügbar ist, ist es unter "Aktueller Benutzer" oder "Lokaler Computer" verfügbar? Ich habe festgestellt, dass ich den privaten Schlüssel nur exportieren kann, wenn er sich unter Lokaler Computer befindet.

Sie können das Snap-In für Zertifikate zu MMC hinzufügen und auswählen, für welches Konto Zertifikate verwaltet werden sollen. Wählen Sie Lokaler Computer. Wenn Ihr Zertifikat nicht vorhanden ist, importieren Sie es, indem Sie mit der rechten Maustaste auf den Speicher klicken und Alle Aufgaben> Importieren auswählen.

Navigieren Sie nun zu Ihrem importierten Zertifikat unter der lokalen Computerversion des Zertifikat-Snap-Ins. Klicken Sie mit der rechten Maustaste auf das Zertifikat und wählen Sie Alle Aufgaben> Exportieren. Auf der zweiten Seite des Exportassistenten sollten Sie gefragt werden, ob Sie den privaten Schlüssel exportieren möchten. Wählen Sie Ja. Die PFX-Option ist jetzt die einzige, die verfügbar ist (sie ist ausgegraut, wenn Sie "Nein" auswählen und die Option zum Exportieren des privaten Schlüssels unter dem Konto "Aktueller Benutzer" nicht verfügbar ist).

Sie werden aufgefordert, ein Kennwort für die PFX-Datei festzulegen und anschließend den Zertifikatsnamen festzulegen.

3
Ryan Elkins

Obwohl es wahrscheinlich am einfachsten ist, eine neue CSR mit IIS zu generieren (wie @rainabba sagte), wird vorausgesetzt, dass Sie die Zwischenzertifikate haben, gibt es einige Online-Konverter - zum Beispiel: https: // www.sslshopper.com/ssl-converter.html

Auf diese Weise können Sie eine PFX aus Ihrem Zertifikat und Ihrem privaten Schlüssel erstellen, ohne ein anderes Programm installieren zu müssen.

1
William

Ich hatte das gleiche Problem. Mein Problem war, dass der Computer, der die anfängliche Zertifikatanforderung generiert hat, abgestürzt war, bevor der erweiterte SSL-Validierungsprozess abgeschlossen wurde. Ich musste einen neuen privaten Schlüssel generieren und dann das aktualisierte Zertifikat vom Zertifikatsanbieter importieren. Wenn der private Schlüssel auf Ihrem Computer nicht vorhanden ist, können Sie das Zertifikat nicht als pfx exportieren. Die Option ist ausgegraut.

1
Bill Mahoney

Ich weiß, dass einige Benutzer über das Installieren dieses und jenes und das Hinzufügen von Befehlszeilenprogrammen und das Herunterladen gesprochen haben ...

Persönlich bin ich faul und finde all diese Methoden umständlich und langsam, außerdem möchte ich nichts herunterladen und die richtigen cmd-Zeilen finden, wenn ich nicht muss.

Der beste Weg für mich auf meinem persönlichen IIS Server ist die Verwendung von RapidSSLOnline. Dies ist ein Tool, mit dem Sie auf einem Server Ihr Zertifikat und Ihren privaten Schlüssel hochladen und eine PFX-Datei für Sie generieren können, die Sie direkt in IIS importieren können.

Der Link ist hier: https://www.rapidsslonline.com/ssl-tools/ssl-converter.php

Unten finden Sie die Schritte für das angeforderte Szenario.

  1. Wählen Sie Current Type = PEM
  2. Ändern Sie für = PFX
  3. Laden Sie Ihr Zertifikat hoch
  4. Laden Sie Ihren privaten Schlüssel hoch
  5. Wenn Sie über ein ROOT CA-Zertifikat oder Zwischenzertifikate verfügen, laden Sie diese ebenfalls hoch
  6. Legen Sie ein Kennwort Ihrer Wahl fest, das in IIS verwendet wird
  7. Klicken Sie auf das reCaptcha, um zu beweisen, dass Sie kein Bot sind
  8. Klicken Sie auf Konvertieren

Und das wars, Sie sollten eine PFX heruntergeladen haben und diese in Ihrem Importprozess auf IIS verwenden.

Hoffe, dies hilft anderen gleichgesinnten, faulen Technikern.

0
TheNerdyNerd

Für die Powershell ist ein Export-PfxCertificate - Cmdlet verfügbar, das die Aufgabe zu erfüllen scheint.

0
Usurer

In den meisten Fällen kann das Zertifikat nicht als PFX (einschließlich des privaten Schlüssels) exportiert werden, weil MMC/IIS den privaten Schlüssel (der zum Generieren der CSR verwendet wird) nicht finden kann bzw. keinen Zugriff darauf hat. Dies sind die Schritte, die ich ausgeführt habe, um dieses Problem zu beheben:

  • Führen Sie MMC als Admin Aus.
    • Generieren Sie die CSR mit MMC. Befolgen Sie diese Anweisungen , um das Zertifikat exportierbar zu machen.
  • Wenn Sie das Zertifikat von der Zertifizierungsstelle erhalten haben (crt + p7b), importieren Sie sie (Personal\Certificates und Intermediate Certification Authority\Certificates).
  • WICHTIG: Klicken Sie mit der rechten Maustaste auf Ihr neues Zertifikat (Personal\Certificates) All Tasks..Manage Private Key, und weisen Sie Ihrem Konto oder Jeder Berechtigungen zu (riskant!). Sie können zu vorherigen Berechtigungen zurückkehren, wenn Sie fertig sind.
  • Klicken Sie jetzt mit der rechten Maustaste auf das Zertifikat, und wählen Sie Alle Aufgaben ... Exportieren aus. Sie sollten in der Lage sein, das Zertifikat einschließlich des privaten Schlüssels als PFX-Datei zu exportieren und auf Azure hochzuladen.

Hoffe das hilft!

0
Jose Parra