MSSQLとのセキュアな接続方法
作成日:2020年9月1日 | 更新日:2021年3月11日
本ナレッジではMSSQLとのセキュアな接続方法について記載いたします。
手順概要
手順 1
このプロセスを開始するには、「SSL証明書」を作成する必要があります。
自己署名証明書でもサードパーティー証明書でもどちらでも構いません。
MSSQLサーバーがインストールされているマシンで、自己署名付きのSSL証明書を作成する手順は、以下の通りです。
- IISマネージャーを開く
- 接続先のホスト名をクリックし、右ペインの「Server Certification(サーバー証明書)」をクリック
- 右ペインのアクションメニューの、ベリサインのような検証済みの証明書局をインポートするオプションを選択、
または、「Create self-signed certificate(自己署名証明書の作成)」をクリックし、情報を入力 - 作成完了(作成された自己署名証明書は、1 年間有効です)
手順 2
自己署名/サードパーティーのSSL証明書をServiceDesk Plusにインポートする方法
これを行うには、まずIISサーバーから作成された自己署名付きSSL証明書をエクスポートする必要があります。
SSL証明書をエクスポートする手順は、以下の通りです。
- IISマネージャーで証明書を開く
- 詳細タブをクリック
- ファイルのコピーオプションをクリック
- 「Certificate Export wizard(証明書のエクスポートウィザード)」ページが開くので、「next(次へ)」ボタンをクリック
- 「Export private key(秘密キーのエクスポート)」ウィンドウで、「NO, do not export the private key(秘密キーをエクスポートしない)」オプションを選択し、「next(次へ)」ボタンをクリック
- 「Export file format(ファイル形式のエクスポート)」ウィンドウで、
DER encoded binary X.509 (.CER)またはBase-64 encoded X.509 (.CER)のいずれかを選択し、「next(次へ)」ボタンをクリック - 証明書ファイルをエクスポートするディレクトリを探す(例 : <SDP Installation Folder>/jre directory)
- 「next(次へ)」をクリックし、「Finish(完了)」 をクリックして証明書をエクスポート
または
- エクスポートした証明書を<SDP Installation Folder>/jreディレクトリにコピー&ペースト
- <SDP Installation Folder>/jreディレクトリ下で以下のコマンドを実行
"%JAVA_HOME%\bin\keytool" -import -v -trustcacerts -alias myserver -file <サーバー証明書名>.cer -keystore "%JAVA_HOME%\lib\security\cacerts" -keypass changeit -storepass changeit -noprompt
上記のコマンドを実行すると、ローカルストアに自己署名証明書がインストールされます。
手順 3:
MSSQLサーバーでSSL暗号化を有効にする方法
- 「SQL Server構成マネージャー(SQL Server Configuration Manager)」を開く
- 「SQL Serverネットワーク構成(SQL Server Network Configuration)」を展開し、右のSQL サーバーインスタンスを選択し、右クリックして「プロパティ(Properties)」を選択
- 「証明書(Certificate)」タブの下で、作成/インポートされたSSL証明書を関連付けて、「Apply(適用)」ボタンをクリック
- 「Flags(フラグ)」タブで、 「ForceEncryption」オプションを「Yes(はい)」に変更
シンタックス 「-Djsse.enableCBCProtection=false」を、
<インストールディレクトリ>/ManageEngine/ServiceDesk/binにあるrun.batファイルと、
<インストールディレクトリ>/ManageEngine/ServiceDesk/confにあるwrapper.confファイルに追加
さらに、シンタックス 「ssl=require」を、<インストールディレクトリ>にある database_params.conf ファイルに追加
以下のスクリーンショットを参照してください。
run.bat:
wrapper.conf:
database_params.conf:
シンタックスを追加したら、変更を反映させるため、MSSQLとServiceDesk Plusを再起動する必要があります。
接続が暗号化されているかどうかを確認するには、以下のクエリを実行します。
select * from sys.dm_exec_connections where client_net_address='<SDPサーバーのIPアドレス>';
上記クエリの実行結果でencrypt_optionカラムが'TRUE'であればコネクションは暗号化されています。