5 Stimmen

Fangen Sie SSL-Zertifikatsanforderungsfehler ein, um zur richtigen Website umzuleiten

Wir verwenden IIS 6 und ASP.Net. Wenn Benutzer sichere Seitenanfragen stellen unter Verwendung von

https://somesite.com/securePage.aspx

erhält der Benutzer einen Fehler:


Fehlercode: ssl-fehler schlechter zertifikatsbereich


Das Zertifikat wurde für www.somesite.com ausgestellt und deutet darauf hin, dass somesite.com ein ungültiges Sicherheitszertifikat verwendet.

Ich hatte gehofft, die Anforderung im Ereignis Application BeginRequest abfangen zu können, aber der SSL-Fehler tritt vorher auf. Um das Ereignis Application BeginRequest auszulösen, muss der Benutzer die Zertifikatfehlermeldung bestätigen. Ist es möglich, in Code umzuleiten, oder muss diese Korrektur in IIS erfolgen?

6voto

Die einzige Lösung besteht darin, die zweite Domain im Zertifikat mit einem SubjectAlternativeName einzuschließen. Einige Zertifizierungsstellen erlauben Ihnen dies ohne zusätzliche Kosten zu tun.

Alles andere würde nur passieren nachdem die SSL-Verbindung hergestellt ist und daher nachdem der Fehler vom Benutzer festgestellt wird.

Bei HTTPS wird die SSL-Verbindung ausgehandelt, bevor irgendwelche HTTP-Header an den Server gesendet werden, einschließlich des Host-Headers, der dem Server mitteilt, für welchen virtuellen Host die Anfrage tatsächlich gedacht ist.

1voto

Gary Brunton Punkte 1678

Ich konnte dieses Problem mithilfe der Rewrite-Funktion von IIS lösen. Es stellte sich heraus, dass es wirklich einfach zu beheben war und wir kein neues Zertifikat kaufen mussten.

0voto

JohnL Punkte 373

HOP hat mit seiner Antwort recht. Owen, auch wenn wir den Luxus hatten, IIS 7 zu verwenden, ist es nun auch von innerhalb des IIS aus möglich, Rewrite-Regeln ähnlich wie die mod_rewrite-Regel von Apache anzuwenden.

Nach weiteren Untersuchungen heute zusammen mit unseren Netzwerkadministratoren und unserem SSL-Zertifizierungsanbieter ist es durchaus möglich und kostenlos, eine SAN auf unser Zertifikat anzuwenden.

Aufgrund politischer Probleme innerhalb der ORG wurde jedoch entschieden, dass DEV (meine Gruppe) eine Weiterleitung auf die registrierte Domain im Application BeginRequest-Ereignis einrichten soll. Für jede Anforderung werden wir überprüfen, ob die URL auf unseren FQDN verweist. Wenn die Anforderung an den 'Kurznamen' erfolgt, werden wir sie immer auf den FQDN zeigen, indem wir das www an den Kurznamen anhängen, der durch die context.Host-Methode zurückgegeben wird.

Zweifellos wird dies die Gesprächigkeit usw. erhöhen!

0voto

Nazca Punkte 112

Ich habe das auf einem meiner Server getestet und das ist, was ich gefunden habe.

Wir haben ein UCC-Zertifikat, das für 5 Domains funktioniert. Meine 5 Domains sind

master mydomain.com

Untergeordnete alternative Namen: mysite.com myweb.com thissite.com www.thissite.com

Der Grund, warum es so eingerichtet ist, ist, weil ich nicht ganz verstanden habe, dass es www. wollte, als ich es gemacht habe.

Also,

https://mydomain.com - funktioniert
https://www.mydomain.com - funktioniert
https://www.mysite.com - FEHLER
https://mysite.com - funktioniert
https://thissite.com - funktioniert
https://www.thissite.com - funktioniert.

Wenn Sie ein UCC-Zertifikat haben (es scheint, dass Sie eins haben), fügen Sie einen alternativen Namen mit www. auf der betreffenden Domain hinzu. Es wird dann für beide funktionieren.

Ich bin alle Schritte durchgegangen, um mit .htaccess und serverseitigem Skripting umzuleiten. Aber, Hop hat recht, es wird nichts tun, wenn Sie das Zertifikat nicht korrigieren.

Sie müssen wahrscheinlich eine Domain fallen lassen, wenn Sie Ihr Zertifikat erneuern. Merken Sie sich einfach, welche Sie fallen gelassen haben, und holen Sie sich ein neues Zertifikat für diese. Ich werde es immer und immer wieder ABLEHNEN, UCC-Zertifikate zu kaufen. Mehr Probleme als sie wert sind. 1 Domain = 1 Zertifikat.

Wenn Ihre Domain Geld verdient, ist es das Geld wert, wenn Sie kein Geld verdienen - brauchen Sie wirklich das Zertifikat?

-1voto

djn Punkte 3954

In Apache wird dies normalerweise mit mod_rewrite gemacht:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

Google nach "URL-Umschreiben IIS", und Sie werden einige Äquivalente für IIS finden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X