Ich habe eine https-Soap und ich möchte die Zertifikatsüberprüfung ignorieren. Ich habe das in THTTPRIO.HTTPWebNode
mit OnBeforePost
Ereignis gemacht:Delphi-Soap (httprio) ignorieren Zertifikatsvalidierung
procedure TMySOAP.OnBeforePost(const HTTPReqResp: THTTPReqResp; Data: Pointer);
var
aFlagsSize: DWord;
aFlags: DWord;
begin
aFlagsSize := SizeOf(aFlags);
// get security flags
if InternetQueryOption(Data, INTERNET_OPTION_SECURITY_FLAGS, @aFlags, aFlagsSize) then
begin
// add all flag for ignore validation
aFlags := aFlags or
SECURITY_FLAG_IGNORE_UNKNOWN_CA or
SECURITY_FLAG_IGNORE_REVOCATION or
SECURITY_FLAG_IGNORE_CERT_CN_INVALID or
SECURITY_FLAG_IGNORE_CERT_DATE_INVALID or
SECURITY_FLAG_IGNORE_WRONG_USAGE;
// set the new flags
InternetSetOption(Data, INTERNET_OPTION_SECURITY_FLAGS, @aFlags, aFlagsSize)
end;
end;
es funktioniert .. aber ich habe ein zweites Problem. Meine Kunden sind hinter einer Unternehmensfirewall ohne Internet und jede Anfrage an die Soap verliert 15 Sekunden, da Windows versucht, den Zertifikatspfad über das Internet zu validieren, und dieser Vorgang hat ein Standard-Timeout von 15 Sekunden (siehe https://technet.microsoft.com/en-us/library/cc771429(v=ws.11).aspx).
Gibt es ein Flag oder Snippet für zur Laufzeit gesetzt, eine benutzerdefinierte Retrieval-Timeout-Einstellungen?
aber der Punkt der Frage ist, wie Zertifikat-Validierung ignorieren ... – ar099968