ASP.NET und die zugrunde liegende Verbindung wurde geschlossen: Die Vertrauensbeziehung für den sicheren SSL / TLS-Kanal konnte nicht hergestellt werden

8

Ich mache eine httpwebrequest mit einer öffentlichen Root-Autorität Certificat-Datei X509. Ich habe nur den öffentlichen Schlüssel, nicht den privaten Schlüssel. Alles funktioniert gut aus einer Konsolen-App, aber es funktioniert nicht von einer asp.net-App. Ich erhalte den Fehler: "Die zugrunde liegende Verbindung wurde geschlossen: Konnte keine Vertrauensbeziehung für den sicheren SSL / TLS-Kanal herstellen."

Die Option zum Deaktivieren der Validierung ist keine Option.

Hier ist der Code

%Vor%

Hier sind die Systemprotokolle von System.Net und System.Net Sockets.

System.Net Information: 0: [5928] SecureChannel # 8106798 - Eine Zertifikatskette konnte nicht mit einer vertrauenswürdigen Stammzertifizierungsstelle erstellt werden.

System.Net Information: 0: [5928] SecureChannel # 8106798 - Das Remotezertifikat wurde vom Benutzer als ungültig bestätigt.

System.Net.Sockets Verbose: 0: [5928] Socket # 7486778 :: Dispose ()

System.Net Fehler: 0: [5928] Ausnahme in der HttpWebRequest # 51319244 :: - Die zugrunde liegende Verbindung wurde geschlossen: Konnte Vertrauensstellung für den sicheren SSL / TLS-Kanal nicht herstellen.

System.Net Fehler: 0: [5928] Ausnahme in der HttpWebRequest # 51319244 :: EndGetRequestStream - Die zugrunde liegende Verbindung wurde geschlossen: Konnte Vertrauensbeziehung für den sicheren SSL / TLS-Kanal nicht herstellen.

Weitere Informationen

Wenn ich diesen Code (von CodeGuru) verwende

%Vor%

Ich bekomme schließlich den Fehler:

  

Remote-Zertifikatskettenfehler

    
Jeffrey GAdoury 07.01.2010, 17:20
quelle

2 Antworten

10

Dieses Problem kann mit diesem zu Application_Start hinzugefügt werden:

%Vor%

Es ermöglicht grundsätzlich eine Diskrepanz zwischen dem Server und seinem Zertifikat.

Quelle:

Ссылка

Hinweis: Diese Problemumgehung wird für die Produktion nicht empfohlen

    
Marcelo Mason 15.03.2012 22:25
quelle
1

Es klingt, als könnte das Problem sein, was auf diesem link . Der ASPNET-Workerprozess erfordert, dass der Zertifikatsname mit dem Servernamen übereinstimmt. Es gibt Workarounds, die mit Testumgebungen implementiert werden können.

Für die Zertifikatserzeugung können Sie ein freies Programm namens SelfSSL.exe mit Befehlen wie:

verwenden

SelfSSL.exe /T /N:CN=localhost /V:999 /Q (wobei "localhost" der Name des Zertifikats ist)

Und:

winHTTPCertCfg.exe -g -c local_machine\my -s localhost -a Administrators (um Administratoren Zugriff auf das Zertifikat zu gewähren)

    
Tanner 07.01.2010 17:29
quelle