Indy ネットワーク接続のセキュリティ保護

提供: RAD Studio
移動先: 案内検索

マルチデバイス アプリケーションのネットワーク接続のセキュリティ保護 への移動


このトピックでは、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 の場合、リモート マシンでアプリケーションを実行したりユーザーにアプリケーションを配布する前に、アプリケーションの配置構成を変更して、これらのライブラリ ファイルをアプリケーション実行可能ファイルのパスに含める必要があります。手順は以下のとおりです。

  1. [プロジェクト|配置]を選択します。
  2. 配置マネージャ上部のコンボ ボックスを開いて、[すべての構成]の下のターゲット プラットフォーム(32 ビット Windows または 64 ビット Windows)を選択します。
  3. [ファイルの追加]をクリックします。
  4. 先ほどダウンロードした必要なライブラリ ファイルを選択して、[OK]をクリックします。

OS X および 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" を取得します。

関連項目