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:
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?