此代码:
uses
System.Net.HttpClient;
procedure TForm2.Button1Click(Sender: TObject);
var
LHTTP: THTTPClient;
LResponse: IHTTPResponse;
begin
LHTTP := THTTPClient.Create;
try
LHTTP.SecureProtocols := [THTTPSecureProtocol.TLS13];
LResponse := LHTTP.Get('https://tls13.1d.pw'); // TLS 1.3 ONLY site
if LResponse.StatusCode = 200 then
ShowMessage('TLS 1.3 worked');
finally
LHTTP.Free;
end;
end;
在以下方面的成果:
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class ENetHTTPClientException with message 'Error sending data: (12175) A security error occurred'.
---------------------------
Break Continue Help Copy
---------------------------
使用Windows 10 (在Windows 11上使用相同的代码)。我已经进入了Windows中的Internet选项设置并启用了TLS 1.3,但是这并不能解决这个问题。
还有什么我需要做的吗?
发布于 2022-03-17 04:19:14
根据WinHTTP 错误信息文档:
ERROR_WINHTTP_SECURE_FAILURE 12175 在服务器发送的安全套接字层()证书中发现一个或多个错误。要确定遇到哪种错误类型,请检查状态回调函数中的
WINHTTP_CALLBACK_STATUS_SECURE_FAILURE
通知。有关更多信息,请参见WINHTTP_STATUS_CALLBACK
。
不幸的是,THTTPClient
没有为您提供使用此类回调的访问权限,但它确实使用内部回调来捕获ERROR_WINHTTP_SECURE_FAILURE
在其SecureFailureReasons
属性中的原因。这样你就能查到更多的信息。
您确定在Windows 10上启用了TLS 1.3吗?您在使用build 1903或更高版本吗?早期构建不支持TLS 1.3。
https://stackoverflow.com/questions/71506537
复制相似问题