schannel

___ tag123c ___ C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entworfen und behält eine ähnliche Syntax, ist aber jetzt eine völlig andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. ___ qstnhdr ___ Libcurl funktioniert nicht mehr, SSL-Verbindungsfehler ___ tag123winapi ___ Die Windows-API (früher als Win32-API bezeichnet) ist der Kernsatz von Anwendungsprogrammierschnittstellen, die für die Microsoft Windows-Betriebssysteme verfügbar sind. Mit diesem Tag können Sie Fragen zur Entwicklung nativer Windows-Anwendungen mit der Windows-API beantworten. ___ tag123ssl ___ Secure Sockets Layer (SSL) ist ein kryptografisches Protokoll, das sichere Kommunikation über das Internet ermöglicht. Häufig wird SSL als Oberbegriff verwendet und bezieht sich sowohl auf das SSL-Protokoll als auch auf das TLS-Protokoll (Transport Layer Security). Die neueste Version des Protokolls ist TLS Version 1.2, spezifiziert von der IETF in RFC 5246. ___ tag123libcurl ___ Verwenden Sie dieses Tag nur für Fragen im Zusammenhang mit der Multiprotokoll-Internet-Übertragungsbibliothek. Für Fragen zum Befehlszeilen-Tool verwenden Sie bitte das spezifische curl-Tag ___ qstntxt ___

Ich arbeite an einem Programm für den persönlichen Gebrauch, das in regelmäßigen Abständen einige Webseiten scrapt. Einer von ihnen erfordert die Verwendung von SSL und seine Haupt-URL ist eigentlich ein Load-Balancer, der jedes Mal von einer Liste einer Handvoll zu einer anderen Domäne umleitet (nicht sicher, ob dies relevant ist). Ich bin ziemlich neu in libcurl und SSL im Besonderen, damit ich etwas offensichtliches vermisse, aber ich denke nicht.

Das Programm funktioniert eine Weile (bis jetzt, niemals länger als eine Stunde), aber sobald es zum ersten Mal den SSL-Verbindungsfehler erhält, wird es immer den gleichen Fehler geben. Es ist immer eine andere Zeit und eine andere Anzahl von erfolgreichen Anfragen, bevor sie fehlschlägt.

Der Fehlerpuffer enthält immer Folgendes: %code%

In %code% gibt es nichts Nützliches. Bei der Suche nach diesem Fehlercode werden Ergebnisse zu Problemen mit selbstsignierten Zertifikaten in früheren Versionen von Windows Server zurückgegeben. Ich kontrolliere nicht den Server, mit dem ich mich verbinde, aber ich bezweifle, dass es eine Windows-Box ist.

Ich habe hier keine Ideen mehr, also werde ich nur Details angeben, die relevant sein könnten. Ich kann eigentlich keinen Quellcode posten, da ich in mehreren Klassen alle Curl-Aufrufe entfernt habe, so dass ich viel Code einfügen musste, bevor andere einen Sinn daraus machen konnten. Ich habe mit dem Debugger von Visual Studio bestätigt, dass dies die eigentlichen Aufrufe sind, obwohl.

Ich initialisiere libcurl im Hauptthread, bevor irgendwelche anderen erstellt werden: %code%

Dann erstelle und initialisiere ich das eigentliche Curl-Handle in einem zweiten Thread und nur in diesem Thread, so:

%Vor%

Ich habe versucht, %code% und %code% auf 0 zu setzen, aber das hat nicht geholfen.

Ich habe libcurl von %code% mit %code% in Visual Studio 2013 erstellt.

Was ist hier los und wie kann ich es beheben?

    
___ tag123channel ___ hilf uns dieses Wiki zu bearbeiten ___ answer32590943 ___

Ich nehme an, dass Sie ein einziges CURL-Handle für alle Ihre Anfragen verwenden (da Sie sagen "Ich erstelle und initialisiere das tatsächliche Curl-Handle"). Die Lösung wird höchstwahrscheinlich ein CURL-Handle für jede Anforderung erstellen, die mit curl_easy_perform () und dann sofort mit curl_easy_cleanup () durchgeführt wird.

Was Sie sehen, wird wahrscheinlich dadurch verursacht, dass der Server die SSL-Verbindung herunterfährt. Aber Ihr CURL-Handle behält seinen Zustand wahrscheinlich so, wie er ist (d. H. Mit dem Handshake abgeschlossen), was nicht mehr angemessen ist.

    
___ answer32492293 ___
%Vor%

sollte funktionieren ...

    
___
1
Antwort

So importieren Sie eine OpenSSL-Schlüsseldatei in den Windows-Zertifikatspeicher

Ich habe ein OpenSSL-generiertes X.509-Zertifikat im PEM-Format und seine dazugehörige Schlüsseldatei. Dieses Zertifikat wird für die Authentifizierung beim Herstellen einer Verbindung mit einem Prototypserver benötigt. Dies funktioniert gut unt...
27.03.2013, 23:25
2
Antworten

Libcurl funktioniert nicht mehr, SSL-Verbindungsfehler

Ich arbeite an einem Programm für den persönlichen Gebrauch, das in regelmäßigen Abständen einige Webseiten scrapt. Einer von ihnen erfordert die Verwendung von SSL und seine Haupt-URL ist eigentlich ein Load-Balancer, der jedes Mal von einer Li...
01.09.2015, 14:18