
Für die Entwicklungsumgebung kann ich in IIS7.5 ein selbstsigniertes Zertifikat erstellen. Aber dieses Zertifikat ist SHA-1 und neuerdings beschweren sich Browser darüber. Wenn ich FireBug öffne, sehe ich folgende Warnungen:
„Diese Site verwendet ein SHA-1-Zertifikat. Es wird empfohlen, Zertifikate mit Signaturalgorithmen zu verwenden, die stärkere Hash-Funktionen als SHA-1 verwenden.“
Meine Fragen sind also:
1) Gibt es eine Möglichkeit, ein selbstsigniertes Zertifikat zu erstellen, das stärker ist als SHA-1?
2) Wenn nicht, gibt es eine Möglichkeit, dem Browser mitzuteilen, dass diese Warnungen nicht mehr angezeigt werden sollen?
AKTUALISIEREN
Ich habe am Ende die Antwort von @vcsjones verwendet, aber damit bin ich nicht weit gekommen. Es gab ein paar Probleme, die ich lösen musste, bevor es funktionierte.
1) Aus irgendeinem Grund konnte ich das Zertifikat nicht mit Passwort importieren. Also habe ich eines ohne erstellt.
2) Als ich ein PFX-Zertifikat über IIS importierte, erhielt ich immer wieder die Meldung „Eine angegebene Anmeldesitzung existiert nicht“, wenn ich versuchte, ein neues Zertifikat in „Bindungen bearbeiten“ anzuwenden. Also habe ich ein wenig recherchiert und Folgendes gefundenSO Antwortum nützlich zu sein, insbesondere die Antwort von Mike L.
Ich möchte noch hinzufügen, dass Sie beim Importieren des Zertifikats daran denken, das .pfx-Zertifikat auszuwählen. Die Standardauswahl des Importassistenten ist *.cer, das Sie importieren können (ein Fehler, den ich gemacht habe), aber dann konnte ich das Zertifikat nicht in den IIS-Serverzertifikaten sehen. Als ich genauer hinsah, fehlte ein kleiner Schlüssel im Symbol. Nun habe ich recherchiert und konnte es reparieren überKB-889651Artikel. Stellen Sie also sicher, dass Sie .pfx importieren, dann funktioniert es ohne Reparatur.
Noch ein Hinweis: Wenn Sie Vertrauensprobleme mit diesem Zertifikat haben, importieren Sie es auch in die „Vertrauenswürdige Stammzertifizierungsstelle“.
Antwort1
Sicher. Diemakecert
Das Dienstprogramm, das Teil des Windows SDK ist, kann Folgendes:
makecert -len 2048 -r -a sha256 -sv private.pvk -n CN=localhost cert.cer
Der -a
Parameter legt den Hash-Algorithmus fest. Dies gibt eine PVK- und eine DER-CER-Datei aus. Sie können den allgemeinen Namen natürlich auch beliebig ändern, ich habe nur localhost als Beispiel verwendet. Sie können diese zu einem PFX kombinieren (was IIS beim Importieren eines Zertifikats bevorzugt verwendet), indem Sie Folgendes verwenden pvk2pfx
(ebenfalls Teil des SDK):
pvk2pfx -spc cert.cer -pvk private.pvk -pfx out.pfx
Dabei werden einfach die beiden makecert
generierten Dateien genommen und zu einer PKCS12-PFX-Datei kombiniert.
Mit der resultierenden PFX-Datei öffnen Sie IIS, importieren sie unter „Serverzertifikate“ und ändern dann die Bindungen Ihrer Site, um das neue Zertifikat zu verwenden.
Antwort2
Ich verwende bei der Arbeit einen gesperrten Windows 7 Enterprise-Computer und kann daher das Windows SDK nicht installieren, um Zugriff auf zu erhalten makecert
. So habe ich mein selbstsigniertes SHA256-Zertifikat erstellt (entnommen aushttps://core.telegram.org/bots/self-signed):
- Entscheiden Sie, in welchem Verzeichnis Sie Ihr Zertifikat speichern möchten
Erstellen Sie in diesem Verzeichnis eine Textdatei
template.txt
mit dem folgenden Inhalt:[NewRequest] ; At least one value must be set in this section Subject = "CN={your.domain.com}" KeyLength = 2048 KeyAlgorithm = RSA HashAlgorithm = sha256 ;MachineKeySet = true RequestType = Cert UseExistingKeySet=false ;generates a new private key (for export) Exportable = true ;makes the private key exportable with the PFX
Ersetzen Sie es
{your.domain.com}
durch die Adresse, die Sie für den Zugriff auf Ihre Site verwenden, z. B."CN=localhost"
- Öffnen Sie eine Eingabeaufforderung und wechseln Sie in Ihr Zertifikatsverzeichnis
- Laufen
certreq -new template.txt RequestFileOut
- Sie müssen die Seriennummer kennen, also führen Sie aus,
certutil -store -user my
um einen Dump zu erhalten, der die Seriennummer enthält - Ersetzen Sie
{SERIALNUMBER}
durch die Seriennummer im Dump und{YOURDER}.crt
durch den Namen der Ausgabedatei:certutil -user -store -split my {SERIALNUMBER} {YOURDER}.crt
- Ersetzen Sie
{YOURDER}.crt
durch den Namen der Eingabedatei und{YOURPEM}.cer
durch den Namen der Ausgabedatei:certutil -encode {YOURDER}.crt {YOURPEM}.cer
- Ersetzen Sie
{your.domain.com}
durch Ihren tatsächlichen (Test-)Domänennamen und{YOURPKCS}.pfx
durch den Namen der Ausgabedatei:certutil -exportpfx -user {your.domain.com} {YOURPKCS}.pfx NoChain
Danach ging ich zum IIS-Manager, Sites -> {Sitename} -> Bindungen... (unter „Site bearbeiten“). Dann klickte ich auf https/443, da ich es bereits eingerichtet hatte, auf Bearbeiten... und wählte das neue Zertifikat aus der Liste aus.
Firefox beschwerte sich, dass meine Site ein selbstsigniertes Zertifikat verwendete, also fügte ich es einfach als Ausnahme hinzu und voilà! es funktionierte!
Antwort3
Ja, ich habe auch die Fehler-/Warnmeldung „Eine angegebene Anmeldesitzung existiert nicht“ erhalten.
Ich habe einfach ein zweites Mal auf „OK“ geklickt und es wurde akzeptiert.