OTW/SSL と InterBase のセットアップ
提供: InterBase
メインページ へ戻る
始める前に
- セットアップ手順では、OpenSSL for windows が必要となります。コンパイル済みバージョン(こちら)またはソース ファイル(こちら)を取得してください。 OpenSSL のコンパイル済みバージョンを取得したら、そのファイルを、使用する予定の InterBase サーバーの
c:\openssl
フォルダに置いてください。 - キーを自己署名するための、ファイル openssl.cnf をファイル:Openssl.zipからダウンロードしてください。ファイルを
c:\openSSL
フォルダに配置し、必要に応じて既存のファイルをバックアップおよび上書きします。 - フォルダ
c:\certs
を作成します。 - InterBase サーバーを停止します。
キーを生成する
- CMD を Administrator として実行します。
- コマンドラインを使用して、
c:\openssl
に移動します。 - 秘密キーをパスワードと共に生成するには、次を実行します:
openssl genrsa -aes256 -out c:\certs\key.pem 2048
- プロンプトに従い、パスワードを入力して検証します。
- ファイル
key.pem
がc:\certs
フォルダに作成されます。
キーを要求する
- キーを要求するには、コマンドラインで次を実行します:
openssl -req -new -key c:\certs\key.pem -out c:\certs\csr.pem -config openssl.cnf
- 前の手順で設定したパスワードを入力します。
- 情報を要求されても、細かく入れる必要はありません。
- メモ:
anything@somewhere.invalid
を e メールとして使用してください。本当の e メール アドレスは問題を起こします。
- メモ:
- ファイル
key.pem
がc:\certs
フォルダに作成されます。
キーに署名する
- キー要求ファイルに自分の秘密キーで署名をします。コマンドラインで次を実行してください:
- c:\certs\key.pem in c:\certs\csr.pem -out c:\certs\ibservercafile.pem
- 前の手順で設定したパスワードを入力します。
- ファイル
ibservercafile.pem
がc:\certs
フォルダに作成されます。 このファイルを、クライアントで使用します。
サーバー側ファイルを作成する
- コマンドラインで、
c:\certs
フォルダに移動します。 - ibcaservercafile を、秘密キー ファイルに追加します。コマンドラインで次を実行します:
copy /b ibservercafile.pem + key.pem ibservercafileserver.pem
- ファイル
ibservercafile.pem
がc:\certs
フォルダに作成されます。 サーバーは、OTW 暗号化を実行する際に、このファイルが必要となります。 - これで、CMD ウィンドウを閉じても構いません。
InterBase を設定する
- InterBase サーバーが停止されていることを確認してください。
- ファイル
ibss_config.default
を見つけてください。例:C:\ProgramData\Embarcadero\InterBase\gds_db\secure\server
- メモ帳か他のテキスト エディタを、Administrator で開きます。
- 次のテキストを入力し、前の手順で設定したパスワードを使用します。
- IBSSL_SERVER_PORT_NO=4000
- IBSSL_SERVER_CERTFILE="c:\certs\ibservercafileserver.pem"
- IBSSL_SERVER_PASSPHRASE=<パスワード>
- メモ: この例では、セキュリティのためのにポート 4000 を、標準ポート 3065 の代わりに使用していますが、空いているポートならどれを使用しても構いません。
- ファイルを
ibss_config.txt
として保存し、それをibss_config.default
と同じフォルダに置きます。 ibss_config.txt
があるフォルダに移動し、それをibss_config
と名前を変更します(場合により、Windows のフォルダの設定で、[登録されている拡張子は表示しない]オプションのチェックをはずす必要があります)。- テキスト エディタを Administrator で開き、
c:\windows\system32\drivers\etc
フォルダにあるファイルservices
を開きます。 gds_db 3050/TCP
をgds_db 3051/TCP
に変更します。ポート 3050 は非暗号化用です。- 次の行を、一番下に追加します:
gds_ssl 4000/tcp #InterBase SSL Server
- メモ: 前の手順で設定したポート番号を使用してください。
- ファイルを保存して閉じます。
- InterBase サーバーを起動します。
メモ: この例では、想定外の暗号化されていないアクセスを避けるため、ポート 3051 はファイアウォール上で閉じられており、ポート 4000 が開いています。ポート 4000 は、セキュアであり続ける必要のある IP アドレスに対してのみ開かれます。
FireDAC とのリモート接続
次のステップでは、Delphi において、FireDAC とリモートから接続する方法について説明します。
ibservercafile.pem
とgds32.dll
を、Delphi アプリケーション ディレクトリに置きます。TFDconnection
とTFDPhysIBDriverLink
をフォームに置きます。TFDPhysIBDriverLink
の名前をMyLink
に変更します。MyLink
DriverID プロパティを MYIB に変更します。FDconnection1
DriverName プロパティを MYIB に変更します。そして、以下をform.create
イベントに置きます。サーバー(YOURSERVER) 、および、データベースまたはデータベース エイリアス(YOURDATABASE) の名前を変更することを忘れないでください:
procedure Tform1.FormCreate(Sender: Tobject); Var AppFolder : string; begin AppFolder:=ExtractFilePath(ParamStr(0)); FDConnection1.Params.Clear; FDConnection1.Params.add(‘server=YOURSERVER/4000?ssl=true?serverPublicFile=”’+ AppFolder + ‘ibservercafile.pem”??’); FDConnection1.Params.Database:=’:YOURDATABASE’; FDConnection1.Params.Add(‘Protocol=TCPIP’); FDConnection1.Params.UserName:=’sysdba’; FDConnection1.Params.Password:=’masterkey’; FDConnection1.Params.Add(‘CharacterSet=win1250’); FDConnection1.Params.Add(‘ExtendedMetadata=True’); FDConnection1.Params.DriverID:=’MyIB’; MyLink.VendorLib:=Appfolder + ‘gds32.dll’; FDConnection1.Connected:=true; end;