Indy ネットワーク接続のセキュリティ保護
マルチデバイス アプリケーションのネットワーク接続のセキュリティ保護 への移動
このトピックでは、Indy ネットワーク接続に、TLS/SSL セキュリティ サポートを追加する方法について説明します。
必要な準備
開発用マシンで Indy の TLS/SSL を使用するには、開発用プラットフォーム向けの最新の OpenSSL アーカイブを http://indy.fulgan.com/SSL/ からダウンロードします。
- 32 ビット Windows の場合:
openssl-<バージョン>-i386-win32.zip
- 64 ビット Windows の場合:
openssl-<バージョン>-x64_86-win64.zip
ダウンロードしたアーカイブの内容を解凍し、次のライブラリ ファイルを探します。
libeay32.dll
ssleay32.dll
これらのファイルを、RAD Studio によってアプリケーションの実行可能ファイルが生成されるフォルダにコピーします。たとえば、32 ビット Windows であれば <プロジェクト フォルダ>/Win32/Debug
にコピーします。
Windows の場合、リモート マシンでアプリケーションを実行したりユーザーにアプリケーションを配布する前に、アプリケーションの配置構成を変更して、これらのライブラリ ファイルをアプリケーション実行可能ファイルのパスに含める必要があります。手順は以下のとおりです。
- [プロジェクト|配置]を選択します。
- 配置マネージャ上部のコンボ ボックスを開いて、[すべての構成]の下のターゲット プラットフォーム(32 ビット Windows または 64 ビット Windows)を選択します。
をクリックします。
- 先ほどダウンロードした必要なライブラリ ファイルを選択して、[OK]をクリックします。
macOS および Android の場合、アプリケーションで TLS/SSL をサポートするためのこれらの準備をする必要はありません。 これらのオペレーティング システムでは、必要な OpenSSL ライブラリをデフォルトで使用できるためです。
iOS で TLS/SSL 暗号化をサポートするようアプリケーションを構成する方法は、「iOS アプリケーションの作成」の「OpenSSL のサポート」を参照してください。
その他のプラットフォームについては、「OpenSSL ライブラリ」を参照してください。
Indy クライアントで TLS/SSL をサポートするための実装
TIdTCPConnection の下位クラス(TIdHTTP など)には IOHandler というプロパティがあります。
Indy ネットワーク接続をセキュアなものにするには、TIdSSLIOHandlerSocketOpenSSL コンポーネントをフォーム デザイナにドラッグし、Indy クライアント コンポーネントの IOHandler
プロパティを[オブジェクト インスペクタ]でダブルクリックして、新しい TIdSSLIOHandlerSocketOpenSSL
コンポーネントを入出力ハンドラに選択します。
あるいは、Indy クライアントのネットワーク接続をコードでセキュアにすることもできます。
Delphi の場合:
Client.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create;
C++ の場合:
Client->IOHandler = new TIdSSLIOHandlerSocketOpenSSL();
これで、このクライアントから、TLS/SSL 暗号化をサポートするサーバーに対して、HTTPS プロトコルを使ったセキュアな要求を行うことができます。たとえば、TLS/SSL 暗号化を使用して "http://www.example.com" を取得するには、代わりにクライアントで "https://www.example.com" を取得します。