Comment configurer la suite ELK avec un certificat signé SSL/TLS
Voici comment passer la suite ELK en https :
Je commence par générer le certificat en précisant que je veux le résultat dans un .zip :
/usr/share/elasticsearch/bin ./elasticsearch-certutil ca --pem --out /etc/elasticsearch/certs/ca.zipPuis, je me rends dans le dossier dans lequel est le .Zip et je l’unzip :
cd /etc/elasticsearch/certs/ unzip ca.zip
Ensuite, je vais dans le dossier bin d’elasticsearch pour lancer une commande qui permet encore de générer des certificats :
cd /usr/share/elasticsearch/bin ./elasticsearch-certutil cert \ --out /etc/elasticsearch/certs/elastic.zip \ --name elastic \ --ca-cert /etc/elasticsearch/certs/ca/ca.crt \ --ca-key /etc/elasticsearch/certs/ca/ca.key \ --ip 192.168.110.56 \--pem
Et je me rends là où est installé le fichier elastic.zip pour l’unzip et mettre les bons privilèges sur les dossiers :
cd /etc/elasticsearch/certs unzip elastic.zip chown -R elasticsearch:elasticsearch
Puis, je vais dans le fichier de configuration d’elastic pour tout paramétrer :
sudo nano /etc/elastic/elastic.ymlEt je change les options avec ça :
xpack.security.enabled: true xpack.security.enrollment.enabled: true xpack.security.http.ssl: enabled: true certificate: certs/elastic/elastic.crt key: certs/elastic/elastic.key certificate_authorities: certs/ca/ca.crt xpack.security.transport.ssl: enabled: true verification_mode: certificate keystore.path: certs/transport.p12 truststore.path: certs/transport.p12
Puis, je redémarre les services et je me rends sur l’ip de ma machine avec le port d’elastic qui est 9200 pour m’assurer que cela marche :
systemctl enable elasticsearch systemctl start elasticsearch
Une fois fonctionnelle pour Elastic, je vais refaire la même pour Kibana. Je commence par créer un dossier kibana dans root :
mkdir /root/kibanaEnsuite, je me rends dans le dossier bin d’elasticsearch pour pouvoir générer les certificats de kibana :
cd /usr/share/elasticsearch/bin ./elasticsearch-certutil cert \ --out /root/kibana/kibana.zip \ --name kibana \ --ca-cert /etc/elasticsearch/certs/ca/ca.crt \ --ca-key /etc/elasticsearch/certs/ca/ca.key \ --ip 192.168.110.56 \ --pem
Une fois les certificats générés, je crée le dossier certs dans kibana :
mkdir /etc/kibana/certsPuis, je vais dans le dossier Kibana créé à la racine Root et j’unzip le dossier kibana.zip. Je me rends dans le dossier extrait pour copier les certificats dans le dossier certs de Kibana :
cd /root/kibana unzip kibana scp kibana.crt kibana.key /etc/kibana/certs cp /etc/elasticsearch/certs/ca/ca.crt /etc/kibana/certs
Et je mets les bons privilèges pour les certificats kibana :
cd /etc/elastic/certs chown kibana:kibana ca.crt kibana.crt kibana.key
Ensuite, j’ajoute les certificats dans le fichier de configuration de kibana :
sudo nano /etc/kibana/kibana.yml
server.ssl.enabled: true elasticsearch.ssl.certificateAuthorities: [ "/etc/kibana/certs/ca.crt" ] server.ssl.certificate: /etc/kibana/certs/kibana.crt server.ssl.key: /etc/kibana/certs/kibana.key elasticsearch.hosts: [ "https://192.168.110.56:9200" ] elasticsearch.ssl.verificationMode: full
Et je commente la case username / password et rajouter la ligne elasticsearch.serviceAccountToken: “token” pour mettre en place l’authentification via token :
#elasticsearch.username: #elasticsearch.password: elasticsearch.serviceAccountToken: "token"
Ensuite, je crée le token :
cd /usr/share/elasticsearch/bin ./elasticsearch-service-tokens create elastic/kibana kibana-token
Et dans le même dossier je crée un fichier texte nommé token et je copie le token dedans :
sudo nano token
Je me rends après dans le dossier d’elasticsearch :
cd /etc/elasticsearchEt je donne les bonnes permissions au fichier service_tokens
chown elasticsearch:elasticsearch service_tokens
Maintenant, il faut importer le token :
cd /usr/share/kibana/bin ./kibana-keystore add elasticsearch.serviceAccountTokenPuis, entrer le token quand ça le demande.
Pour finir on donne les droits à kibana :
cd /etc/kibana chown -R kibana:kibana ./
Je peux maintenant redémarrer les deux services de kibana et elastic :
systemctl restart kibana systemctl restart elasticsearch
Kibana est désormais accessible en https :
.
.
.