2016-05-19 9 views
1

Ich verfüge über eine Webanwendung, die Clientzertifikat-Authentifizierung für eine API von Drittanbietern durchführt. Die Anwendung funktioniert, ich möchte sie jedoch in Azure App Services verschieben.Überschreiben der clientseitigen Zertifikatauthentifizierungsprüfung

Das für die Clientauthentifizierung verwendete Zertifikat wird nicht von einer Zertifizierungsstelle ausgestellt, die der Speicher vertrauenswürdiger Stammzertifikate ist. Azure erlaubt das Hinzufügen von Zertifikaten zum Speicher vertrauenswürdiger Stammzertifikate in App Services aus offensichtlichen Gründen nicht.

Soweit ich feststellen kann, ist das Standardverhalten auf dem Client nicht das Client-Zertifikat zu senden, wenn die Vertrauenskette nicht validiert werden kann. Gibt es eine Möglichkeit in .net, dieses Verhalten zu überschreiben und das Zertifikat trotzdem zu senden?

Ich weiß, dass ServicePointManager.ServerCertificateValidationCallback ermöglicht es Ihnen, das Überprüfen des Server-Zertifikats zu überschreiben, aber nichts zur Überprüfung des Client-Zertifikats.

Antwort

0

Meines Wissens ich glaube, Sie auf dem richtigen Weg sind und dass mit diesem Code:

ServicePointManager 
.ServerCertificateValidationCallback += 
(sender, cert, chain, sslPolicyErrors) => true; 

Sollten Sie tatsächlich nutzen Sie die Ergebnisse, die Sie wollen? Da der Server das Client-Zertifikat validiert, wird ein Fehler ausgegeben. Wenn Sie den Callback auf true setzen, werden alle Fehler überschrieben. Ich bin mir nicht sicher, ob Sie diese Lösung bereits ausprobiert haben, klingt, als hätten Sie es getan.

+0

Ich habe diesen Ansatz versucht. Es scheint nicht zu gelten, ein Client-Zertifikat zu senden. Das Problem, das ich habe ist, dass selbst wenn ich ein Client-Zertifikat zu einer Anfrage hinzufügen, es nie tatsächlich gesendet wird und ServerCertificateValidationCallback nie aufgerufen wird. – Jacob

+1

Verweigert das nicht die Verwendung von Zertifikaten? Wenn Sie nur ein Zertifikat akzeptieren, unabhängig von der Gültigkeit, warum sollten Sie überhaupt Client-Zertifikate verwenden? –

+0

Ich stimme @SimonW zu, wenn Sie jedoch nicht über die Stammzertifizierungsstelle verfügen (begrenzte Szenarios, die ich kenne), könnte sie immer noch gültig sein oder Sie verwenden selbstsignierte Zertifikate. Persönlich würde ich immer versuchen, Zertifikate richtig zu akzeptieren. –

Verwandte Themen