Activation du chiffrement de connexion à la base de données pour MS SQL
Configurez la base de données MS SQL pour appliquer le chiffrement basé sur SSL.
Avant de commencer
Pourquoi et quand exécuter cette tâche
X.509 codé en .CER Base-64 à l'aide de la MMC (Microsoft Management Console). Procédez comme suit :- Exécutez la MMC sur le système Windows hébergeant la base de données MS SQL.
- Cliquez avec le bouton droit de la souris sur le certificat et accédez à .
- Cliquez sur Suivant.
- Choisissez Non, ne pas exporter la clé privée et cliquez sur Suivant.
- Sélectionnez le format Base-64 encoded X.509 (.CER) et cliquez sur Suivant.
- Saisissez le nom du fichier.
- Vérifiez les paramètres spécifiés et cliquez sur Terminer.
- Le certificat est exporté vers l'emplacement spécifié.
Une fois que vous avez exporté le certificat, activez le chiffrement de la connexion.
Procédure
- Chargez le certificat public du serveur MS SQL.
- Ouvrez la ligne de commande et utilisez la commande cd <BFI_INSTALL_DIR>/wlp/usr/servers/server1/resources/security.
-
Créez le type
<keystore_extension>du fichier de clés certifiées et importez-y le certificat public à l'aide de la commandekeytool -importcert -file <.cer file> -keystore key_bfi_db.<keystore_extension> -alias "bfi_db_cert" -storetype <type>. Indiquez le mot de passe du fichier de clés certifiées. Saisissez Oui pour accréditer le certificat. - Arrêtez le service BigFix Inventory.
-
Mettez à jour les attributs existants et ajoutez les attributs manquants dans le fichier server.xml.
Important : Pour la base de données, utilisez le même nom de serveur que celui fourni dans le certificat. Mettez à jour la valeur dans l'attribut serverName.
<dataSource id="DatabaseConnection" jndiName="jdbc/ilmtDatabaseConnection"> <jdbcDriver libraryRef="DatabaseLib"/> <properties.microsoft.sqlserver databaseName="temadb" encrypt="true" lockTimeout="180000" password="<password encrypted in in ‘aes’ encoding>" serverName="<host name - the same that certificate is issued to>" trustServerCertificate="false" trustStore="<BFI_INSTALL_DIR>/wlp/usr/servers/server1/resources/security/key_bfi_db.<keystore_extension>>” trustStorePassword="<password encrypted in in ‘aes’ encoding>" user="sa"/> </dataSource>Remarque : Chiffrement du mot de passe dans le codage "aes". Pour plus d'informations, voir Mise à jour du mot de passe de la base de données. Si vous choisissez de chiffrer la connexion à la base de données lors de la mise à niveau du serveur BigFix Inventory, vous devez définir l'attribut de chiffrement de mot de passe dans la source de données. -
Mettez à jour les attributs existants et ajoutez les attributs manquants dans le fichier database.yml.
Important : Pour la base de données, utilisez le même nom d'hôte que celui fourni dans le certificat. Mettez à jour la valeur dans l'attribut de nom d'hôte.
host: <host name - the same that certificate is issued to> database: temadb username: sa database_type: mssql windows_authenticated: false encrypted_password: "<password encrypted in in ‘aes’ encoding>" encrypt: true trustServerCertificate: false trustStore: <<BFI_INSTALL_DIR>/wlp/usr/servers/server1/resources/security/key_bfi_db.<keystore_extension>> trustStorePassword: "<password encrypted in in ‘aes’ encoding>" - Démarrez le service BigFix Inventory.
-
Surveillez tema.log pour vous assurer que la connexion est établie.
Si l'application ne démarre pas, examinez le tema.log depuis la partie supérieure. En cas de problèmes de configuration, WebSphere crée un journal FFDC.
[3/10/21 11:28:03:118 UTC] 00000026 com.ibm.ws.recoverylog.spi.RecoveryDirectorImpl I CWRLS0010I: Performing recovery processing for local WebSphere server (server1). [3/10/21 11:28:03:180 UTC] 00000026 com.ibm.ws.recoverylog.spi.RecoveryDirectorImpl I CWRLS0012I: All persistent services have been directed to perform recovery processing for this WebSphere server (server1). [3/10/21 11:28:03:180 UTC] 00000041 com.ibm.tx.jta.impl.RecoveryManager I WTRN0135I: Transaction service recovering no transactions. [3/10/21 11:28:03:352 UTC] 00000026 com.ibm.ws.logging.internal.impl.IncidentImpl I FFDC1015I: An FFDC Incident has been created: "com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "PKIX path validation failed: java.security.cert.CertPathValidatorException: signature check failed". ClientConnectionId:a89039f3-b6ce-4de6-8d10-8c205c44243e com.ibm.ws.rsadapter.impl.MicrosoftSQLServerHelper 1298" at ffdc_21.03.10_11.28.03.0.log [3/10/21 11:28:03:477 UTC] 00000026 com.ibm.ws.logging.internal.impl.IncidentImpl I FFDC1015I: An FFDC Incident has been created: "com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException: DSRA8100E: Unable to get a PooledConnection from the DataSource. with SQL State : 08S01 SQL Code : 0 com.ibm.ejs.j2c.poolmanager.FreePool.createManagedConnectionWithMCWrapper 199" at ffdc_21.03.10_11.28.03.1.log [3/10/21 11:28:03:524 UTC] 00000026 com.ibm.ws.logging.internal.impl.IncidentImpl I FFDC1015I: An FFDC Incident has been created: "javax.resource.spi.ResourceAllocationException: DSRA8100E: Unable to get a PooledConnection from the DataSource. with SQL State : 08S01 SQL Code : 0 com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection 299" at ffdc_21.03.10_11.28.03.2.log [3/10/21 11:28:03:524 UTC] 00000026 SystemOut O [JAVA] [ERROR] [ILMTCore] (Default Executor-thread-3) com.ibm.ilmt.common.dao.util.DBDefaultPoolerManager::init:Unable to initialize datasource jdbc/ilmtDatabaseConnectionRemarque : Les paramètres <type> et <keystore_extension> qui s'appliquent aux commandes ci-dessus spécifient les éléments suivants :<type>- A partir de la version 10.0.8.0, le type du certificat est PKCS12. Pour les versions antérieures, il s'agit de JCéKS.
- <
keystore_extension> - A compter de la version 10.0.8.0, le nom du fichier de clés est .p12. Pour les versions antérieures, il s'agit de .jceks.