2017-12-21 17 views
0

Ich hole Daten von einem Drittunternehmen und sie haben mir Zertifikate ausgestellt, damit ich auf ihren Dienst zugreifen kann. Bei der lokalen Einrichtung funktionierte es nach der Installation von .cer und .pfx in meinen Zertifikatsspeichern. Allerdings kann ich nicht damit es funktioniert, wenn der Code auf meinem Azure Web App läuft, kommt es zu Fehlern:Öffentliches und privates Azure-Zertifikat, auf das über die Web-App nicht zugegriffen werden kann

Could not establish trust relationship for the SSL/TLS secure channel with authority 

ich diesen speziellen Fehler zunächst lokal vor dem meine Anwendung Pool Zugang zum öffentlichen Root-Zertifikat geben (IIS AppPool \ AppPoolName). Es fühlt sich an, als würde ich jetzt den gleichen Fehler bei Azure erleben. Der Code findet definitiv die Zertifikate (sonst würde ein Fehler ausgelöst), aber anscheinend hat er keinen Zugriff darauf, sie zu verwenden.

Ich habe diese Anleitung befolgt die Zertifikate in meinem Web-App zu installieren: https://azure.microsoft.com/en-us/blog/using-certificates-in-azure-websites-applications/

ich gesetzt habe, die Anwendung Eigenschaft alle certs zu importieren: enter image description here

Dies ist der Code ich benutze

var store = new X509Store(StoreName.My, StoreLocation.CurrentUser); 
store.Open(OpenFlags.ReadOnly); 
var certs = store.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, false); 

if (certs == null || certs.Count == 0) 
{ 
    ExceptionUtils.ThrowDataError("Private certificate could not be found"); 
} 

store.Close(); 
return certs[0]; 

ich auch versucht habe, das Hinzufügen die PFX zu dem Ordner App_Data und laden es wie folgt: das private Zertifikat zu laden

var certPath = HttpContext.Current.Server.MapPath("~/App_Data/cert.pfx"); 
var bankIdCert = new X509Certificate2(certPath, "password"); 

Aber es ergibt sich der gleiche Fehler. Vielleicht bedeutet das, dass es keinen Zugang zum öffentlichen Zertifikat erhält? Der einzige Unterschied jetzt zwischen der Arbeits lokalen Version und der azurblauen Version ist:

  • Vor Ort ist die öffentliche cert im Speicher Localmachine Standort Root und privat im Speicher Localmachine Lage My
  • Auf Azure beim Hochladen, beide Zert gehen zu CurrentUserMy

Müssen einige Zertifikate auf LocalMachine sein, um zu funktionieren?

Antwort

0

Could not establish trust relationship for the SSL/TLS secure channel with authority

In Ihrem Fall die meisten Gründe für eine SSL-Zertifikatsüberprüfung zum Scheitern verurteilt sind:

The hostname used in the URL doesn't match the name that's on certificate. Make sure the URL you're using and the URL on the 'Issued to' field of the certificate are the same.

Als Swikruti Bose erwähnt, dass Sie Bind an existing custom SSL, um benutzerdefinierte SSL folgenden könnten.

Da azure WebApp die sandbox ist, haben wir keinen Zugriff auf die Stammzertifizierungsstelle in der Azure WebApp zu installieren.

Wenn Azure Virtual Machine oder Cloud Service möglich ist, können Sie auch die virtuelle Azure-Maschine oder cloud Service verwenden.

Verwandte Themen