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

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

始める前に

  • DB2 データベースは、接続暗号化が有効になるように構成されています。DB2 の IBM TLS 構成プロセスについて詳しくは、https://www.ibm.com/docs/en/db2/11.5?topic=transit-tls-configuration-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. を使用して行うことができます。

このタスクについて

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

DB2 の暗号化を有効にするには、以下の手順を実行します。

手順

  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 ファイルに 追加します。
    ヒント: 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 です。