Heim > Artikel > Backend-Entwicklung > Teilen von Lösungen für einige Probleme, wenn ASP.NET X509Certificate2 verwendet (Bild)
In diesem Artikel wird hauptsächlich ausführlich ASP.NET vorgestellt, wie eine Reihe von Problemen bei der Verwendung von X509Cert gelöst werden könnenificate2, das einen bestimmten Referenzwert hat. Interessierte Freunde können sich auf
beziehen. Bei Rückerstattungen per WeChat-Zahlung traten aufgrund der Notwendigkeit, das P12-Zertifikat zu verwenden, eine Reihe von Fallstricken auf. Machen Sie hier eine Notiz, damit Sie später leichter darauf zurückgreifen können.
Originalcode zum Laden des Zertifikats:
Kopieren Sie den Code Der Code lautet wie folgt:
1 X509Certificate2 cert = new X509Certificate2(path + WxPayConfig.SSLCERT_PATH, WxPayConfig.SSLCERT_PASSWORD);2 Request.ClientCertificates.Add(cert);
Getestet am vs. Bestanden. Bei der Bereitstellung in IIS tritt dieses Problem jedoch weiterhin auf:
Code kopieren Der Code lautet wie folgt:
System.Security.Cryptography.CryptographicException: 系统找不到指定的文件。
Detaillierte Stack-Trace-Informationen:
bei System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr)
bei System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromFile(String fileName, IntPtr Password, UINT32 DWFLAGS, Boolean Persist Key Set , SafecertContexthan DL E & PCERTCTX)
.X509certifiedEs.x509certified.loadcertifiedFromFile (String fileName, Objekt Passwort, Byte[]
xml
, String-URL, Boolean isUseCert, Int32 timeout). Nach wiederholten Tests wurde bestätigt, dass es sich nicht um ein Problem mit dem Code oder Dateipfad handelte. Nachdem ich
1. Installieren Sie das Zertifikat
auf Klicken Sie auf [Start] -> Rufen Sie die Benutzeroberfläche „Konsole“ auf. Wählen Sie [Datei] – Snap-In „Hinzufügen/ löschen“ (Strg+M). Wählen Sie [Zertifikat] -> [Weiter] -> >
Importieren Sie Ihre Zertifikatsdatei
2. Autorisierungszertifikat
Installieren Sie zunächst das Tool winhttpcertcfg.exe (Windows HTTP Services). Zertifikatkonfigurationstool). Nach Abschluss der Installation befindet sich das Tool im Ordner „C:Programme (x86)WindowsResource KitsTools“ oder „C:ProgrammeWindows Resource KitsTools“. Öffnen Sie cmd und geben Sie den Befehl ein:
Kopieren Sie den CodeDer Code lautet wie folgt:
winhttpcertcfg -g -c LOCAL_MACHINEMY -s "Ihr Zertifikatsname" -a " Ihre IIS-Konto-ID „-g-Befehl ist Autorisierung-c bezieht sich auf den Speicherbereich, in dem sich das Zertifikat befindet
Darüber hinaus lautet der Name des Zertifikats , wie im Bild gezeigtstatt Etwas anderes habe ich einfach auf die Details dieses Zertifikats geklickt und den Namen darin übernommen, was dazu führte, dass die Autorisierung fehlschlug. Die iis-Kontoidentifikation bezieht sich auf den Anwendungspool, der der Site entspricht. In den erweiterten Einstellungen besteht die Möglichkeit, den entsprechenden Benutzer zu identifizieren. Die Identität, die ich damals autorisiert habe, war Network Service, und die Identität im Anwendungspool war ApplicationPoolIdentity. Als ich eine Anfrage initiierte, wurde Folgendes angezeigt:
Code kopieren Der Code lautet wie folgt:
System.Net.WebException: Anforderung abgebrochen: Fehler beim Erstellen des SSL/TLS-
sicheren-Kanals.
3. Ändern Sie den Code Ändern Sie nach Abschluss dieser Konfigurationen den Code zum Laden des Zertifikats.复制代码 代码如下:
1 X509Store store = new X509Store("My", StoreLocation.LocalMachine); 2 store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly); 3 4 System.Security.Cryptography.X509Certificates.X509Certificate2 cert = 5 store.Certificates.Find(X509FindType.FindBySubjectName, "你的证书名称", false)[0];
再测试一下,终于成功!
Das obige ist der detaillierte Inhalt vonTeilen von Lösungen für einige Probleme, wenn ASP.NET X509Certificate2 verwendet (Bild). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!