DB2 のデータベース接続暗号化の有効化

SSL ベースの暗号化を適用するように MS SQL データベースを構成します。

始める前に

  • DB2 データベースは、接続暗号化が有効になるように構成されています。

  • 抽出された公開信頼証明書は、64 ビット・エンコードした .CER 形式で使用できる必要があります。 これは、コマンド gsk8capicmd_64 -cert -extract -db "<Server Keystore .kdb file>" -pw "<Server Keystore password>" -label "<label name>" -target "<.cer file name>" -format ascii.を使用して行えます。

このタスクについて

証明書をエクスポートしたら、接続暗号化を有効にします。

手順

  1. <keystore_extension> タイプのトラストストアを作成し、そこに公開証明書をインポートします。
    • BigFix Inventory Java ディレクトリー BFI_INSTALL_DIR>/jre/jre/binに移動します。
    • コマンド ./keytool -importcert -file <.cer file location> -keystore <BFI_INSTALL_DIR>/wlp/usr/servers/server1/resources/security/key_bfi_db.<keystore_extension> -alias "bfi_db_cert" を使用して、証明書をトラストストアにインポートします。
    • トラストストアのパスワードを入力します。証明書を信頼するには、Yes を入力します。
  2. BigFix Inventory サービスを停止します。
  3. 既存の属性を更新し、欠落している属性を server.xml ファイルに 追加します。
    重要: データベースについては、証明書と同じサーバー名を使用します。serverName 属性の値を更新します。
    <dataSource id='DatabaseConnection' jndiName='jdbc/ilmtDatabaseConnection'> 
    <jdbcDriver libraryRef='DatabaseLib'/> 
    <properties.db2.jcc databaseName='temadb' driverType='4' 
    enableExtendedIndicators='2' password="<password encrypted in in ‘aes’ encoding>" 
    portNumber='<TLS port number>' serverName=‘<host name - the same that certificate is issued to>’ 
    user='db2inst1' sslConnection="true"  
    sslTrustStoreLocation="<BFI_INSTALL_DIR>/wlp/usr/servers/server1/resources/security/key_bfi_db.<keystore_extension>>” 
    sslTrustStorePassword="<password encrypted in in ‘aes’ encoding>"/> 
    </dataSource>
    注: パスワードを AES 方式で暗号化しています。詳しくは『データベース・パスワードの更新』を参照してください。BigFix Inventory サーバーのアップグレード中にデータベース接続を暗号化する場合は、データ・ソースでパスワード暗号化属性を定義する必要があります。
  4. 既存の属性を更新し、欠落している属性を database.yml ファイルに 追加します。
    重要: データベースについては、証明書と同じホスト名を使用します。host name 属性の値を更新します。
    host: <host name - the same that certificate is issued to>  
    database: temadb 
    username: db2inst1 
    database_type: db2 
    port: ‘<TLS port number>' 
    encrypted_password: "<password encrypted in in ‘aes’ encoding>" 
    sslConnection: true 
    sslTrustStoreLocation: '<<BFI_INSTALL_DIR>/wlp/usr/servers/server1/resources/security/key_bfi_db.<keystore_extension>>’ 
    sslTrustStorePassword: "<password encrypted in in ‘aes’ encoding>"
  5. BigFix Inventory サービスを開始します。
  6. tema.log をモニターし、接続が確立されていることを確認します。
    アプリケーションが起動しない場合は、上部から tema.log を確認してください。構成に問題が発生した場合は、ログにトラブルシューティングに役立つエラー・メッセージが表示されます。例:
    [3/11/21 14:43:42:658 UTC] 0000002a SystemOut                                                    
    O 2021-03-11 14:43:42 ERROR: Cannot connect to the database: Java::ComIbmDb2JccAm::DisconnectNonTransientConnectionException: [jcc]
    t4][2043][11550][4.28.11] Exception java.io.FileNotFoundException: Error opening socket to server ***/*** on port 51,001 with message: ***<keystore_extension> (No such file or directory). 
    ERRORCODE=-4499, SQLSTATE=08001. 
    The next try for 60 seconds. 
    
    [3/11/21 17:02:45:608 UTC] 0000002b SystemOut                                                    
    O 2021-03-11 17:02:45 ERROR: Cannot connect to the database: Java::ComIbmDb2JccAm::DisconnectNonTransientConnectionException: [jcc]
    [t4][2043][11550][4.28.11] Exception java.io.IOException: Error opening socket to server ***/*** on port 51,001 with message: 
    Keystore was tampered with, or password was incorrect. ERRORCODE=-4499, SQLSTATE=08001. 
    The next try for 60 seconds.
    注: 上記のコマンドに適用される <type> および <keystore_extension> パラメーターは、以下を指定します。
    <type>
    バージョン 10.0.8.0 以降では、証明書のタイプは PKCS12 です。上記より前のバージョンでは、JCEKS です。
    <keystore_extension>
    バージョン 10.0.8.0 以降では、鍵ストア・ファイルの名前は .p12 です。上記より前のバージョンでは、.jceks です。