Почему я получаю ошибку "ошибка безопасности 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.

Другие вопросы по тегам