環境
- Delphi 10.2
- Indy 10.6.2.5366
- libeay32.dll
- ssleay32.dll
実装
IndyコンポーネントTIdHTTPを使って、SSL通信の最小設定(のはず)。
procedure TMainForm.GetContentButtonClick(Sender: TObject); var http: TIdHTTP; sslIOHandler: TIdSSLIOHandlerSocketOpenSSL; s: string; begin http := TIdHTTP.Create(nil); sslIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(http); try // プロトコルを指定。(この場合はTLS1.2) sslIOHandler.SSLOptions.Method := sslvTLSv1_2; // 接続にTIdSSLIOHandlerSocketOpenSSLを使う。 http.IOHandler := sslIOHandler; s := http.Get('https://www.nakamurakko.jp'); finally FreeAndNil(http); end; end;
もし、プロトコルの範囲を絞りたい場合はSSLVersionsを設定する。
// TLS1.1、TLS1.2だけ接続。 sslIOHandler.SSLOptions.SSLVersions := [sslvTLSv1_1, sslvTLSv1_2];
リダイレクトさせたい場合はHandleRedirectsをTrueに設定する。
http.HandleRedirects := True;
アプリケーション実行環境にlibeay32.dll、ssleay32.dllを配置するのを忘れずに。