Frage

Ich brauche eine .pfx -Datei, um HTTPS auf einer Website auf 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 Zertifikat Manager (MMC) verfügbar, aber wenn ich den Zertifikat -Export -Assistenten auswähle, kann ich kein PFX -Format auswählen (es ist grau ausgestattet).

Gibt es Tools, um dies oder C# Beispiele dafür programmisch zu tun?

Keine korrekte Lösung

Andere Tipps

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 darin.

Wenn Sie eine Wurzel -CA- und Zwischencerts haben, geben Sie diese auch mit mehreren an -in Parameter

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 installieren: OpenSSL

Das Microsoft PVK2PFX -Befehlszeile -Dienstprogramm scheint die Funktionalität zu haben, die Sie benötigen:

PVK2PFX (PVK2PFX.EXE) ist ein Befehlszeilen-Tool, das öffentliche Schlüssel- und private Schlüsselinformationen kopiert, die in Dateien.
http://msdn.microsoft.com/en-us/library/windows/hardware/ff550672(v=vs.85).aspx

Hinweis: Wenn Sie eine C# -Lösung benötigen/wollen/bevorzugen, möchten Sie möglicherweise die Verwendung der verwenden http://www.bouncycastle.org/ API.

Wenn Sie nach einer Windows -GUI suchen, sehen Sie sich Digicert an. Ich habe das gerade benutzt und es war ziemlich einfach.

Unter der Registerkarte SSL habe ich das Zertifikat zuerst importiert. Als ich dann das Zertifikat ausgewählt habe, konnte ich als PFX exportieren, sowohl mit als auch ohne Keyfile.

https://www.digicert.com/util

Sie benötigen weder OpenSSL noch MakeCert oder irgendetwas davon. Sie benötigen auch nicht den persönlichen Schlüssel, den Sie von Ihrer CA erhalten haben. Ich kann fast garantieren, dass das Problem darin besteht, dass Sie erwarten, die von Ihrer CA bereitgestellten Schlüssel- und CER -Dateien zu verwenden, aber nicht auf "The IIS Way" basieren. Ich bin 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 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ärten - http://rainabba.blogspot.com/2014/03/ssl-certs-for-iis-with-pfx-once-and-for.html

Verwenden Sie die Benutzeroberfläche "Server -Zertifikate" IIS, um "Zertifikatanforderung zu generieren" (die Details dieser Anfrage sind nicht im Rahmen dieses Artikels herausgekommen, diese Details sind jedoch kritisch). Dies gibt Ihnen einen CSR, der für IIS vorbereitet ist. Sie geben diese CSR dann Ihrer CA und fragen nach einem Zertifikat. Dann nehmen Sie die CER/CRT -Datei, die Sie Ihnen geben, zurück zu IIS, "vollständige Zertifikatanforderung" an derselben Stelle, an der Sie die Anfrage generiert haben. Es kann um einen .cer bitten und Sie könnten eine .crt haben. Sie sind dasselbe. Ändern Sie einfach die Erweiterung oder verwenden Sie die . Erweiterung Dropdown, um Ihr .crt auszuwählen. Geben Sie nun einen richtigen "freundlichen Namen" an (*.yourdomain.com, YourDomain.com, foo.yourdomain.com usw.). Dies ist wichtig! Dies muss mit dem übereinstimmen, wofür Sie den CSR einrichten und was Ihre CA Ihnen zur Verfügung gestellt hat. Wenn Sie nach einer Platzkarte gefragt haben, muss Ihre CA eine Platzkarte genehmigt und generiert haben und Sie müssen das gleiche verwenden. Wenn Ihr CSR für foo.yourdomain.com generiert wurde, müssen Sie dieselbe in diesem Schritt zur Verfügung stellen.

Sie müssen das MakeCert -Tool verwenden.

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

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

Wo <CertifcateName> = Der Name Ihres Zertifikats zu erstellen.

Anschließend können Sie den Certificate Manager Snap-In für die Verwaltungskonsole öffnen, indem Sie im Menü Start Certmgr.msc eingeben. Klicken Sie auf Personal> Certificate> und Ihr Cert-Cert sollte verfügbar sein.

Hier ist ein Artikel.

https://azure.microsoft.com/documentation/articles/cloud-services-certs-create/

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

((relevante Zitate aus dem Artikel sind unten)))

Anschließend müssen Sie die .pfx -Datei erstellen, mit der Sie Ihre Bereitstellungen unterschreiben. Öffnen Sie ein Eingabeaufforderungfenster 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 Zertifikatendatei, 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 für dieses Kennwort aufgefordert, wenn Sie die .pfx -Datei zum ersten Mal in Visual Studio 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) (Sie würden dies vor dem oben genannten tun). Beachten Sie, dass die MM/DD/JJJJ Platz für Start- und Enddaten sind. In den MSDN -Artikel finden Sie eine vollständige Dokumentation.

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

Ich habe einen Link mit Ihrer Anforderung erhalten.Kombinieren Sie CRT- und Schlüsseldateien mit OpenSSL zu einem PFX

Auszüge aus dem obigen Link:

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

Klicken Sie auf das oberste Zertifikat (in diesem Fall verisign) und klicken Sie auf das Zertifikat an. Wählen Sie die Registerkarte Details und klicken Sie auf Datei kopieren…

Wählen Sie Basis-64 codiert X.509 (.cer) Zertifikat Speichern Sie es als rootca.cer oder ähnliches. Platzieren Sie es in denselben Ordner wie die anderen Dateien.

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

Hier brauchen wir OpenSSL. Wir können entweder Laden Sie es unter Windows herunter und installieren Sie es, oder einfach das Terminal auf OSX öffnen.

BEARBEITEN:

  1. Da ist ein Unterstützen Sie den Link mit Schritt -für -Schritt -Informationen zur Installation des Zertifikats.

  2. Nach erfolgreicher Installation exportieren Sie das Zertifikat, wählen Sie .pfx Format, einen privaten Schlüssel einschließen.

    Wichtiger Hinweis: : So exportieren Sie das Zertifikat in .PFX -Format Sie müssen die Schritte auf demselben Computer befolgen, aus dem Sie das Zertifikat angefordert haben.

  3. Die importierte Datei kann auf Server hochgeladen werden.

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

Laden Sie einfach den tragbaren Zertifikatkonverter von Digicert herunter:https://www.digicert.com/util/pfx-certificate-management-utility-import-export-instructionss.htm

Führen Sie es aus, wählen Sie eine Datei aus und erhalten Sie Ihre *.pfx !!

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

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

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 unter lokalem Computer liegt.

Sie können den MMC die SNAP -In -in -für Zertifikate hinzufügen und auswählen, für welches Konto Zertifikate er verwaltet werden soll. Wählen Sie einen lokalen Computer. Wenn Ihr Zertifikat nicht vorhanden ist, importieren Sie es, indem Sie mit der rechten Maustaste auf den Laden klicken und alle Aufgaben> Import auswählen.

Navigieren Sie nun zu Ihrem importierten Zertifikat unter der lokalen Computerversion des Zertifikats -SNAP -Einschusses. Klicken Sie mit der rechten Maustaste auf das Zertifikat und wählen Sie alle Aufgaben> Export. Die zweite Seite des Export -Assistenten sollte sich fragen, ob Sie den privaten Schlüssel exportieren möchten. Wählen Sie Ja. Die PFX -Option ist jetzt die einzige verfügbar (sie ist grau, wenn Sie Nein auswählen, und die Option zum Exportieren des privaten Schlüssels ist nicht unter dem aktuellen Benutzerkonto verfügbar).

Sie werden gebeten, ein Passwort für die PFX -Datei festzulegen und dann den Zertifikatnamen festzulegen.

Ich hatte das gleiche Problem. Mein Problem war, dass der Computer, der die Erstzertifikatanforderung generierte, vor Abschluss des erweiterten SSL -Validierungsprozesses abgestürzt war. Ich musste einen neuen privaten Schlüssel generieren und dann das aktualisierte Zertifikat aus dem Zertifikatanbieter 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.

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

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

Wenn Sie in den meisten Fällen das Zertifikat nicht als PFX (einschließlich des privaten Schlüssels) nicht exportieren können, ist MMC/IIS keinen Zugriff auf den privaten Schlüssel (zum Generieren des CSR). Dies sind die Schritte, die ich befolgt habe, um dieses Problem zu beheben:

  • Führen Sie MMC als Administrator aus
    • Generieren Sie die CSR mit MMC. Folgen Diese Anweisungen Um das Zertifikat exportierbar zu machen.
  • Sobald Sie das Zertifikat von der CA (CRT + P7B) erhalten haben, importieren Sie sie (Personal Zertifikate und Zwischenzertifizierungsbehörde Zertifikate).
  • WICHTIG: Klicken Sie mit der rechten Maustaste auf Ihr neues Zertifikat (persönliche Zertifikate) alle Aufgaben. Machen Sie private Schlüssel und weisen Sie Ihrem Konto oder allen (riskant!) Berechtigte zu. Sie können zu früheren Berechtigungen zurückkehren, sobald Sie fertig sind.
  • Klicken Sie nun mit der rechten Maustaste auf das Zertifikat und wählen Sie alle Aufgaben aus.

Hoffe das hilft!

Ich weiß, dass einige Benutzer darüber gesprochen haben, dies und das zu installieren und Befehlszeilenprogramme hinzuzufügen und herunterzuladen ...

Persönlich bin ich faul und finde all diese Methoden mühsam und langsam, und ich möchte nichts herunterladen und die richtigen CMD -Zeilen finde, 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, das sich auf einem Server befindet, ermöglicht es Ihnen, Ihr Zertifikat und Ihren privaten Schlüssel hochzuladen, und kann eine PFX -Datei für Sie generieren, die Sie direkt in IIS importieren können.

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

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

  1. Wählen Sie den aktuellen Typ = pem
  2. Änderung für = PFX
  3. Laden Sie Ihr Zertifikat hoch
  4. Laden Sie Ihren privaten Schlüssel hoch
  5. Wenn Sie Root CA -Zertifikat oder Zwischenstätten haben, laden Sie sie auch hoch
  6. Legen Sie ein Passwort Ihrer Wahl fest, das in IIS verwendet wird
  7. Klicken Sie auf die Recaptcha, um zu beweisen, dass Sie kein Bot sind
  8. Klicken Sie auf Konvertiten

Und das ist es, dass Sie einen PFX herunterladen und dies in Ihrem Importprozess auf IIS verwenden sollten.

Ich hoffe, das hilft anderen ähnlichen, faulen technischen Leuten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top