クライアントとサーバ間の通信データを暗号化する場合は、以下のセットアップを行ってください。
通信データの暗号化では、SSLのデジタル証明書を使用したサーバ認証を行います。
サーバ認証を行うと、通信の盗聴を防止することに加え、中間者攻撃(例えばサーバのなりすましによりデータやパスワードを横奪するなど)を防止することができます。なお、サーバ認証を行わない通信データの暗号化は推奨しません。
セットアップ手順 |
---|
1) 証明書発行の手続き |
2) サーバ証明書ファイル、サーバ秘密鍵ファイルの配置 |
3) CA証明書ファイルのクライアントへの配布 |
4) システム用の動作環境ファイルの編集 |
5) クライアント用の動作環境ファイルの編集 |
通信データの暗号化の環境を以下に示します。
サーバ認証を行うには、認証局(CA)に証明書を発行してもらう手続きが必要です。
Symfoware Serverでは、X.509の規格のPEM形式のファイルをサポートしています。
認証局からDER形式で発行された場合は、opensslコマンドなどのツールを使用してDER形式をPEM形式に変換してください。また、証明書の鍵長は2048ビット以上が必要です。なお、2048ビット未満の鍵長で生成された証明書またはSHA-1を使用した証明書は使用できません。
以下に手順の概要を示します。詳細は、証明書ファイルの取得先である、公的または独自の認証局(CA)より公開されている手順を参照してください。
サーバ秘密鍵ファイルの作成
サーバ秘密鍵ファイルのパスフレーズ解除
サーバ秘密鍵ファイルからCSR(サーバ証明書を取得するための署名要求)を作成
認証局(CA)へサーバ証明書を申請
認証局(CA)から、サーバ証明書ファイルおよびCA証明書ファイルを取得
サーバ証明書ファイルおよびCA証明書ファイルを保管
注) 紛失や破損した場合は、再発行が必要になります。
上記の手順により、以下のファイルが準備できます。
サーバ秘密鍵ファイル
サーバ証明書ファイル
CA証明書ファイル
注意
認証局が公的な認証局の場合、中間CA証明書が配布される場合があります。
中間CA証明書は、サーバ証明書ファイルまたはCA証明書ファイルのいずれかと結合する必要があります。
サーバ証明書ファイルと結合する場合は、サーバ証明書、中間CA証明書の順番になるように結合したファイルをサーバ証明書ファイルとしてください。CA証明書ファイルと結合する場合は、中間CA証明書、CA証明書の順番になるように結合したファイルをCA証明書ファイルとしてください。
なお、ファイルの結合にはOSコマンド等を使用してください。
データベースサーバのローカルディスクにディレクトリを作成し、サーバ証明書ファイル、サーバ秘密鍵ファイルを配置します。
サーバ証明書ファイル、サーバ秘密鍵ファイルのアクセス権は、OSの機能を利用して、データベース管理者にのみ読込み権を設定してください。
また、サーバ証明書ファイルおよびサーバ秘密鍵ファイルは破損に備え、バックアップをして、厳重に管理してください。
クライアントのローカルディスクにディレクトリを作成し、配布されたCA証明書ファイルを配置します。
CA証明書ファイルを誤って削除などしないように、OSの機能を利用して、読込み権を設定してください。
サーバ側の暗号化を指定するため、システム用の動作環境ファイルの以下のパラメタを編集してください。
実行パラメタ | 概要 |
---|---|
SSL_USE | クライアント側からの暗号化した通信を受け入れるか、受け入れないかを指定します。 |
SSL_CIPHER_SUITES | 通信データの暗号方式を指定します。 |
SSL_CERT_FILE | サーバ証明書ファイルの配置先を指定します。 |
SSL_PRIV_KEY_FILE | サーバ秘密鍵ファイルの配置先を指定します。 |
注意
サーバとクライアントで暗号化の指定が矛盾している場合は、エラーになります。
通信データの暗号化を行う/行わないの設定を行う場合は、システム用の動作環境ファイルのSSL_USEパラメタと、クライアント用の動作環境ファイルのSERVER_SPECパラメタの指定に矛盾がないことを確認してください。
パラメタの指定方法の詳細は、“4.2 システム用の動作環境ファイルによる定義”を参照してください。
クライアント用の動作環境ファイルで暗号化の指定が必要です。アプリケーションの動作環境の設定時に指定してください。
なお、埋込みSQL連携で、クライアント用の動作環境ファイルのDEFAULT_CONNECTIONパラメタを使用している場合、データベースサーバに接続するユーザのパスワードが誰にでも参照できてしまいます。
そのため、サーバとの接続方法として、DEFAULT_CONNECTIONパラメタを使用せず、SQLサーバ名を使用したCONNECT文による接続を推奨します。
実行パラメタ | 概要 |
---|---|
SERVER_SPEC | データベースサーバに対して暗号化した通信を行うか、行わないかを指定します。 |
SSL_CLI_CA_CERT_FILE | CA証明書ファイルの配置先を指定します。 |
注意
サーバとクライアントで暗号化の指定が矛盾している場合は、エラーになります。
通信データの暗号化を行う/行わないの設定を行う場合は、システム用の動作環境ファイルのSSL_USEパラメタと、クライアント用の動作環境ファイルのSERVER_SPECパラメタの指定に矛盾がないことを確認してください。
参照
アプリケーションの動作環境の設定については、“アプリケーション開発ガイド(共通編)”を参照してください。