Почему я получаю ошибку "ошибка безопасности 12175" с TNetHttpRequest
Я использую TNetHttpRequest и TNetHTTPClient для отправки данных поста в URL-адрес API следующим образом:
Params := TMultiPartFormData.Create;
Params.AddFile('file_upload', 'c:\myfile.txt','application/octet-stream');
NetHTTPRequest1.Post('https://myurl.com', Params);
Этот плавник работы на Windows 10, но на новой версии Windows 7 Home, я получаю ошибку
Ошибка отправки данных (12175) Произошла ошибка безопасности
Я посмотрел на номер ошибки Microsoft ЗДЕСЬ
ERROR_WINHTTP_SECURE_FAILURE
12175
В сертификате Secure Sockets Layer (SSL), отправленном сервером, обнаружена одна или несколько ошибок. Чтобы определить тип ошибки, проверьте наличие уведомления WINHTTP_CALLBACK_STATUS_SECURE_FAILURE в функции обратного вызова состояния. Для получения дополнительной информации см. WINHTTP_STATUS_CALLBACK.
Но я действительно не знаю, как вызвать эти фонды обратного вызова или что вызывает эту ошибку?
1 ответ
Я решил это путем непроверенного использования SSL2
а также SSL3
от NetHTTPClient1
и я использовал только TLS
Я столкнулся с такой же ошибкой в Windows 7 Pro, легко воспроизводимой с помощью Delphi 10.3. Пример "HttpAsyncDownload".
Я тестировал скомпилированное приложение в Windows 10, где оно работает безупречно.
Наконец, я нашел следующую страницу, которая решила проблему для меня:https://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi
Вкратце, поддержка Transport Layer Security (TLS) 1.1 и TLS 1.2 активирована для Windows 7. Я использовал "простое исправление", которое позволяет использовать его в масштабах всей системы, а также для Internet Explorer.
Наконец, приведенный выше пример приложения "HttpAsyncDownload" безупречно работает в Windows 7 Pro.