Для защищенных соединений (SSL) можно поместить компонент IdSSLIOHandlerSocket и подсунуть его в IOHandler.
а если попробовать заюзать OnRedirect и проверять куда нужно а куда нет .
Нужно подсунуть или какой-то универсальный IOHandler, или подсовывать в какой-то момент SSL IOHandler
# TIdHTTP# TIdSSLIOHandlerSocketOpenSSL# И два файла: libeay32.dll и ssleay32.dll
Почему IdHTTP в пустом тестовом проекте нормально грузятся странички, а в проекте IdHTTP пытается лезть на другие сайты? Свойства IdHTTP одинаковые.
ужно подсунуть или какой-то универсальный IOHandler, или подсовывать в какой-то момент SSL IOHandler smile
I have a SOAP application created in Delphi 7 that uses THTTPRIO. It has been working fine with HTTP but now they want to use HTTPS.
In most cases it is working fine by just changing the URL to HTTPS and setting the appropriate SSL/TLS settings in Windows Internet Options.
However some systems are getting an «IOHandler value is not valid» error.
It is compiled using the default THTTPRIO settings (no defines) in D7 (to use Wininet not Indy), however that LOOKS like an INDY error.
I’ve looked through all the links I can find and do not see a solution.
I’m guessing it is either a Windows settings problem or maybe missing / bad Wininet installation? Missing an KB update (or maybe had an update)?
Anyone have any ideas why this error is occurring on some systems but not others of the same OS (Win7 Pro)?
As it looks like an Indy error, I’m also wondering if it somehow got compiled to use Indy (but it seems to respond to the Internet Options settings). Is there any way to determine if it is using Indy instead?
Всем привет, небольшая заметка о том, как можно с помощью компонентов Indy загружать защищенные веб-страницы, да и не только загружать, а в целом работать с ними (запросы: GET, POST). Насколько я знаю, у всех версиях Indy эта проблема давно наблюдается. Ну, а сейчас немного теории. SSL — это протокол, с помощью которого можно осущеставлять безопасное соединение между клиентом и сервером. Вообще, если Вы загружаете в браузере защищенную страницу, то Вы сразу можете прочитать информацию о защищенной странице, например, в браузере GoogleChrome, при загрузке защищенной страницы в адресной строке появляется «замочек», что означает — была загружена защищенная страница.
А, если нажать на этот замочек, то можно посмотреть более подробную информацию о защищенной странице, где Вы сможете посмотреть сертификат безопасности, алгоритм шифрования страницы, данных и многое другое.
Так как, у Indy с данной задачей давненько проблемы, то некоторые пользователи, для того, чтобы получить код защищенной страницы, отправить запрос, получить ответ с сервера, используют компонент TWebBrowser, что очень неудобно, он все таки визуальный.
Ну что, теперь давайте приступим к самому проекту. Что нам необходимо будет, на форме у меня следующие компоненты:
- TIdHTTP
- TIdSSLIOHandlerSocketOpenSSL
Давайте немного настроим эти компоненты, в свойстве компонента TIdHTTP — IOHandler укажем компонент TIdSSLIOHandlerSocketOpenSSL. Это еще не все, если Вы попробуйте загрузить, через запрос GET, защищенную веб-страницу, то естестевенно у Вас будет ошибка. Для всего этого нам необходимо будет скачать последнею версию библиотеки Openssl, но я скачал RunTimePack библиотек и установил их. Нам необходимы только 2-е dll-ки:
- libeay32.dll
- ssleay32.dll
Их, можно скопировать в папку Вашего проекта, или в системный каталог Windows (system32), лучше всего, носить в папке с проектом, так как не у всех пользователей могут быть установлены данные библиотеки.
Все, как только все это сделано, можно загружать защищенные https-страницы обычным способом:
Если, будете создавать компоненты в run-time, то не забывайте подключать в Uses модули IdSSL, IdSSLOpenSSL.
Версия Indy, на которой тестировался данный код — 10.5.7
Исходник прилаживать не буду, кому необходимо будет, скажите в комментариях.
Если вы хотите что бы ваша иммиграция в Чехию прошла, как можно успешно и безопасно, то в сети есть необходимые ресурсы, которые помогут вам.