Hallo,
ich habe zwei
POP3-Server.
Bei Server1 läuft die Kommunikation mit Zertifikat1, bei Server2 mit Zertifikat2.
Sobald ich einmal eine Verbindung zu Server2 aufgebaut habe,
merkt sich OpenSSL das Zertifikat2 und will es auch bei Server1 mit übergeben.
Server1 will das Zertifikat2 aber natürlich nicht haben.
"Verantwortlich" ist die Funktion VerifyCallback aus IdSSLOpenSSL.pas
Delphi-Quellcode:
hSSL := X509_STORE_CTX_get_app_data(ctx);
if hSSL = nil then begin
Result := Ok; // hier springt er beim 2. Connect rein
Exit;
end;
// hier läuft er beim ersten Connect rein
hcert := X509_STORE_CTX_get_current_cert(ctx);
Im Moment mache ich folgendes vor jedem Reconnect
Delphi-Quellcode:
UnloadOpenSSLLibrary;
Unload;
(Das sind auch 2 Methoden aus IdSSLOpenSSL.pas)
Ich mache wohlgemerkt alles wieder sauber zu:
Disconnect und Free der
POP3-Klasse.