certificats autosignés

Vous devrez peut-être utiliser des certificats auto-signés pour activer la surveillance de certaines technologies ou pour accéder à un miroir Maven interne. Cette rubrique explique comment configurer des certificats auto-signés au niveau de l'agent pour les agents hôtes d' Instana, tant dans les environnements Linux que Windows.

Remarque : pour la configuration des certificats au niveau du backend (pour les services externes auxquels le backend d' Instana se connecte), consultez la section Utilisation d'un certificat CA personnalisé.

Pour fournir des certificats autosignés pour différentes installations d'agent, consultez le contenu suivant:

Ajout d'un certificat auto-signé au fichier de magasin de confiance d' Java

La keytool commande fonctionne de la même manière dans les environnements Linux et Windows. Les étapes suivantes s'appliquent aux deux systèmes d'exploitation.

  1. Copiez le fichier de magasin de certificats « Java » et enregistrez-le dans un emplacement sûr.

    • Si vous utilisez le magasin de certificats par défaut « Java » de l' JVM, fourni avec l'agent hôte Instana, recherchez le fichier de magasin de certificats « Java » sur la machine hôte où l'agent est installé. Enregistrez ensuite le fichier dans un emplacement sûr, en dehors du répertoire d'installation de l'agent.

      • Pour les machines virtuelles Java d' HotSpot (Azul Zulu 11) sur Linux® / Unix® : /opt/instana/agent/jvm/jre/lib/security/cacerts
      • Pour les machines virtuelles Java d' J9 ( IBM, J9, 11) sur Linux / Unix : /opt/instana/agent/jvm/lib/security/cacerts
      • Pour les machines virtuelles Java d' HotSpot (Azul Zulu 11) sur Windows® : C:\Program Files\Instana\instana-agent\jvm\lib\security\cacerts
      • Pour les machines virtuelles Java d' J9 ( IBM, J9, 11) sur Windows : C:\Program Files\Instana\instana-agent\jvm\lib\security\cacerts

      Vous pouvez également extraire le fichier de magasin de certificats « Java » d'une image de conteneur comme suit :

      • Pour un agent d' Instana basé sur HotSpot (Azul Zulu 11), exécutez la commande suivante :

        id=$(docker create icr.io/instana/agent:latest); docker cp $id:/opt/instana/agent/jvm/lib/security/cacerts /<local_path>/cacerts && docker rm -v $id

        Remplacez <local_path> dans la commande par le chemin d'accès local sur votre ordinateur où vous souhaitez enregistrer le fichier de confiance par défaut Java.

      • Pour un agent Instana basé sur J9 ( IBM J9 11), exécutez la commande suivante :

        id=$(docker create icr.io/instana/agent:latest-j9); docker cp $id:/opt/instana/agent/jvm/lib/security/cacerts /<local_path>/cacerts && docker rm -v $id

        Remplacez <local_path> dans la commande par le chemin d'accès local sur votre ordinateur où vous souhaitez enregistrer le fichier de confiance par défaut Java.

    • Si vous souhaitez utiliser un magasin de certificats personnalisé Java pour votre agent hôte Instana, configurez le magasin de certificats Java de l'agent hôte comme indiqué dans la section intitulée « Utilisation d'un magasin de certificats personnalisé Java pour votre agent hôte Instana ». Ensuite, enregistrez votre fichier de magasin de certificats personnalisé Java dans un emplacement sûr.

  2. Importez un certificat auto-signé dans le fichier de magasin de confiance d' Java en exécutant la commande suivante :

    keytool -import -alias <provided_alias> -keystore <java_truststore> -storepass <password> -file <path_to_self-signed_certificate>
    • Une entrée de magasin de clés est identifiée par un alias. Remplacez < provided_alias> par la valeur que vous avez choisie.
    • Remplacez <java_truststore> par le chemin d'accès absolu du fichier de magasin de confiance « Java » que vous avez copié à l'étape précédente.
    • Remplacez < mot_de_passe> par le mot de passe que vous avez choisi. Le mot de passe par défaut du fichier de confiance « Java » est changeit.
    • Remplacez < path_to_self-signed_certificate> par le chemin d'accès absolu à votre certificat autosigné que vous souhaitez importer.

    Sous Windows ( Windows ) (utilisez l'invite de commande ou PowerShell ), la commande est identique :

    keytool -import -alias <provided_alias> -keystore <java_truststore> -storepass <password> -file <path_to_self-signed_certificate>
    Remarque : la keytool commande est fournie avec l'installation d' Java et fonctionne de la même manière sur Linux et Windows. Sous Windows, si ne keytool figure pas dans votre PATH, vous le trouverez dans le bin répertoire de votre installation d' Java (par exemple, C:\Program Files\Instana\instana-agent\jvm\bin\keytool.exe).

Utilisation d'un fichier de magasin de certificats personnalisé « Java » pour l'agent « Instana »

Si vous ne souhaitez pas utiliser le magasin de certificats par défaut Java de l' JVM pour votre agent Instana, vous pouvez utiliser un magasin de certificats personnalisé Java.

Linux hôte

Si votre agent d' Instana est installé sur Linux, utilisez l'une des méthodes suivantes :

systemd

  1. Définissez les paramètres du magasin de certificats d' Java e de l'une des manières suivantes :

    • Utilisez le fichier d'unité.

      1. Pour modifier le fichier d'unité en cours, exécutez la commande suivante:

        systemctl edit instana-agent

        Ensuite, le fichier d'unité en cours est ouvert dans l'éditeur par défaut du système.

      2. Recherchez les lignes ci-après :

        ### Anything between here and the comment below will become the new contents of the file
        
        ### Lines below this comment will be discarded

        Ajoutez le contenu comme suit au fichier:

        [Service]
        Environment="JAVA_OPTS=-Djavax.net.ssl.trustStore=<path_to_java_truststore> -Djavax.net.ssl.trustStoreType=jks"
        • Remplacez <path_to_java_truststore> par le chemin d'accès à votre fichier de magasin de certificats personnalisé Java.
        • Il n'est pas nécessaire de saisir un mot de passe pour lire le magasin de certificats personnalisé d' Java.
    • Utilisez un fichier supplémentaire avec l'extension .conf dans le répertoire /etc/systemd/system/instana-agent.service.d/ comme fichier de dépôt.

      1. Créez un nouveau fichier dans le répertoire /etc/systemd/system/instana-agent.service.d/ avec l'extension .conf, par exemple /etc/systemd/system/instana-agent.service.d/environments.conf.

      2. Ajoutez le contenu comme suit au fichier:

        [Service]
        Environment="JAVA_OPTS=-Djavax.net.ssl.trustStore=<path_to_java_truststore> -Djavax.net.ssl.trustStoreType=jks"
        • Remplacez <path_to_java_truststore> par le chemin d'accès à votre fichier de magasin de certificats personnalisé Java.
        • Il n'est pas nécessaire de saisir un mot de passe pour lire le magasin de certificats personnalisé d' Java.
  2. Rechargez les fichiers d'unité modifiés en exécutant la commande suivante:

    systemctl daemon-reload
  3. Redémarrez l'agent hôte d' Instana pour que les modifications prennent effet en exécutant la commande suivante :

    systemctl restart instana-agent

Variable d"environnement

Pour utiliser un magasin de certificats personnalisé d' Java s pour votre agent hôte, vous pouvez également configurer la variable d'environnement comme suit :

Remarque : si vous souhaitez lancer directement l'agent hôte d' Instana, veillez à ajouter la variable d'environnement suivante avant de lancer l'agent hôte.
JAVA_OPTS="-Djavax.net.ssl.trustStore=<path_to_java_truststore> -Djavax.net.ssl.trustStoreType=jks"
  • Vous devez remplacer <path_to_java_truststore> par le chemin d'accès à votre fichier de magasin de confiance personnalisé Java.
  • Il n'est pas nécessaire de saisir un mot de passe pour lire le magasin de certificats personnalisé d' Java.

Windows hôte

Si votre agent Instana est installé sur Windows, configurez le magasin de confiance Java à l'aide de variables d'environnement ou de la configuration du service Windows.

Utilisation des variables d'environnement

  1. Définissez la variable JAVA_OPTS d'environnement avec les paramètres du magasin de certificats de l' Java.

    Vous pouvez définir cette variable au niveau du système ou au niveau de l'utilisateur :

    • Ouvrez « Propriétés du système » > « Avancé » > « Variables d'environnement ».
    • Dans la section « Variables système » ou « Variables utilisateur », cliquez sur « Nouveau ».
    • Définissez la variable sur JAVA_OPTS.
    • Définissez la valeur de la variable comme suit :

      -Djavax.net.ssl.trustStore=<path_to_java_truststore> -Djavax.net.ssl.trustStoreType=jks
    • Remplacez <path_to_java_truststore> par le chemin d'accès complet vers votre fichier de magasin de certificats personnalisé « Java » (par exemple, C:\certs\cacerts ).
    • Il n'est pas nécessaire de saisir un mot de passe pour lire le magasin de certificats personnalisé d' Java.
  2. Redémarrez le service de l'agent d' Instana pour que les modifications prennent effet.

    Ouvrez Services ( services.msc ), recherchez le service « Instana Agent » et redémarrez-le.

Utilisation de la configuration du service « Windows »

  1. Ouvrez l'éditeur de registre d' Windows (regedit).

  2. Accédez à la clé de registre du service de l'agent « Instana » :

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\instana-agent
  3. Recherchez ou créez la valeur Environment à plusieurs chaînes.

  4. Ajoutez la ligne suivante à la Environment valeur :

    JAVA_OPTS=-Djavax.net.ssl.trustStore=<path_to_java_truststore> -Djavax.net.ssl.trustStoreType=jks
    • Remplacez <path_to_java_truststore> par le chemin d'accès complet vers votre fichier de magasin de certificats personnalisé Java.
    • Il n'est pas nécessaire de saisir un mot de passe pour lire le magasin de certificats personnalisé d' Java.
  5. Redémarrez le service de l'agent d' Instana pour que les modifications prennent effet.

Important : la modification de la clé de registre « Windows » peut nuire à la stabilité du système. Veillez à sauvegarder le registre avant d'effectuer des modifications.

Quand utiliser la configuration des certificats au niveau de l'agent plutôt qu'au niveau du backend

Comprendre quand utiliser la configuration des certificats au niveau de l'agent plutôt qu'au niveau du backend vous aide à sécuriser correctement votre déploiement d' Instana :

  • Configuration des certificats au niveau de l'agent (cette rubrique) : utilisez la keytool commande pour importer des certificats dans le magasin de confiance d' Java de l'agent lorsque l'agent d' Instana doit se connecter à des technologies ou à des services surveillés qui utilisent des certificats auto-signés. Cette configuration influe sur la manière dont l'agent communique avec les systèmes qu'il surveille.

    Exemples : surveillance des bases de données, des serveurs d'applications ou des services internes qui utilisent des certificats auto-signés.

  • Configuration des certificats au niveau du backend : utilisez la stanctl backend apply --core-custom-ca-crt commande pour importer des certificats dans le backend Instana lorsque celui-ci doit se connecter à des services externes utilisant des autorités de certification personnalisées. Cette configuration détermine la manière dont le backend communique avec les systèmes externes.

    Exemples : connexion à des serveurs d' LDAP s externes, à des serveurs SMTP ou à d'autres services externes. Pour plus d'informations, consultez la section « Utilisation d'un certificat d'autorité de certification personnalisé ».

Traitement des incidents

SSLException dans les journaux de l'agent « Instana »

Vous pourriez constater les exceptions suivantes dans les journaux de l'agent « Instana » :

Caused by: javax.net.ssl.SSLException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

Cette exception indique que vous avez lancé l'agent Instana sans fichier de magasin de confiance Java valide.

Pour résoudre ce problème, vous devez valider vos modifications et vous assurer que l'agent « Instana » peut accéder au fichier de magasin de confiance « Java » fourni.