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.
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.
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 $idRemplacez <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 $idRemplacez <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.
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 : lakeytoolcommande est fournie avec l'installation d' Java et fonctionne de la même manière sur Linux et Windows. Sous Windows, si nekeytoolfigure pas dans votre PATH, vous le trouverez dans lebinré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
Définissez les paramètres du magasin de certificats d' Java e de l'une des manières suivantes :
Utilisez le fichier d'unité.
Pour modifier le fichier d'unité en cours, exécutez la commande suivante:
systemctl edit instana-agentEnsuite, le fichier d'unité en cours est ouvert dans l'éditeur par défaut du système.
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 discardedAjoutez 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
.confdans le répertoire/etc/systemd/system/instana-agent.service.d/comme fichier de dépôt.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.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.
Rechargez les fichiers d'unité modifiés en exécutant la commande suivante:
systemctl daemon-reloadRedé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 :
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
Définissez la variable
JAVA_OPTSd'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.
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 »
Ouvrez l'éditeur de registre d' Windows (
regedit).Accédez à la clé de registre du service de l'agent « Instana » :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\instana-agentRecherchez ou créez la valeur
Environmentà plusieurs chaînes.Ajoutez la ligne suivante à la
Environmentvaleur :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.
Redémarrez le service de l'agent d' Instana pour que les modifications prennent effet.
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
keytoolcommande 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-crtcommande 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.