Mise en place HTTPS / SSL sur Elasticsearch / Kibana
Nous vous guidons pas à pas dans l'installation d'Elasticsearch et la configuration HTTPS.
Voici une procédure avec les éléments suivants :
- Version choisie : Elasticsearch et Kibana 7.4.0
- Environnement : CentOS 7
- Configuration : 1 cluster avec un seul nœud
Ouvrir les ports 9200 et 5601 (à faire en root) :
firewall-cmd --zone=public --permanent --add-port=9200/tcp
firewall-cmd --zone=public --permanent --add-port=5601/tcp
firewall-cmd --reload
Étape 0 : Récupérer les sources et créer les répertoires
Se connecter avec le compte root :
mkdir /home/download
cd /home/download
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.0-x86_64.rpm
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.4.0-x86_64.rpm
Installer les deux produits :
rpm -ivh elasticsearch-7.4.0-x86_64.rpm
rpm -ivh kibana-7.4.0-x86_64.rpm
Recharger les services :
sudo systemctl daemon-reload
Faire en sorte que les services démarrent tout seuls :
sudo systemctl enable elasticsearch.service
Ajouter l'entrée suivante dans le fichier /etc/hosts
127.0.0.1 node-https-1 kibana.local
Étape 1 : Créer les certificats Kibana
Créer l'emplacement des futurs certificats :
mkdir /home/download/cert
Y créer le fichier instance.yml avec le contenu suivant :
instances:
- name: "node-https-1"
dns:
- "node-https-1"
- name: "kibana"
dns:
- "kibana.local"
Générer les certificats :
cd /usr/share/elasticsearch
bin/elasticsearch-certutil cert ca --pem --in /home/download/cert/instance.yml --out /home/download/cert/cert.zip
Décompresser l’archive (Intaller unzip si besoin « yum install unzip »). On commence par déplacer le fichier zip dans le dossier de configuration d’Elasticsearch (En effet, Elasticsearch n’a pas les permissions pour voir les fichiers hors de sa propre arborescence) :
cp /home/download/cert/cert.zip /etc/elasticsearch
cd /etc/elasticsearch
unzip cert.zip
Étape 2 : Modifier le fichier de configuration Elasticsearch
Modifier le fichier suivant :
/etc/elasticsearch/elasticsearch.yml
Nouveau contenu de fichier elasticsearch.yml :
cluster.name: test-cluster-https
node.name: node-https-1
network.host: 0.0.0.0
http.port: 9200
transport.host: localhost
transport.tcp.port: 9300
xpack.security.enabled: true
xpack.security.http.ssl.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.http.ssl.key: node-https-1/node-https-1.key
xpack.security.http.ssl.certificate: node-https-1/node-https-1.crt
xpack.security.http.ssl.certificate_authorities: ca/ca.crt
xpack.security.transport.ssl.key: node-https-1/node-https-1.key
xpack.security.transport.ssl.certificate: node-https-1/node-https-1.crt
xpack.security.transport.ssl.certificate_authorities: ca/ca.crt
Étape 3 : Démarrer Elasticsearch
sudo service elasticsearch start
Étape 4 : Configurer les mots de passe par défaut
Ouvrir un nouveau terminal, se positionner dans le répertoire :
cd /usr /share/elasticsearch
Créer les mots de passe par défaut :
bin/elasticsearch-setup-passwords auto -u https://node-https-1:9200
Les mots de passe s’affichent en clair dans la console. Veillez à bien les conserver pour mémoire.
Maintenant, l’accès est possible en HTTPS sur Elasticsearch :
Étape 5 : Configurer Kibana
Copier les certificats de Kibana (voir étape 1) pour les déposer dans le dossier de configuration de Kibana :
cp -r /etc/elasticsearch/kibana /etc/kibana
cp -r /etc/elasticsearch/ca /etc/kibana
Modifier le fichier /etc/kibana/kibana.yml :
server.name: "my-kibana"
server.host: 0.0.0.0
server.ssl.enabled: true
server.ssl.certificate: /etc/kibana/kibana/kibana.crt
server.ssl.key: /etc/kibana/kibana/kibana.key
elasticsearch.hosts: ["https://node-https-1:9200"]
elasticsearch.username: "kibana"
elasticsearch.password: "xWSVufvLc7hTue4UipFs"
elasticsearch.ssl.certificateAuthorities: [ "/etc/kibana/ca/ca.crt" ]
Démarrer Kibana :
sudo service kibana start
Se connecter à Kibana en mode https (cela peut prendre quelques minutes) :
Saviez-vous que nous dispensions des formations ? Découvrez notre formation Elasticsearch.
Vous recherchez des consultants experts en Elasticsearch ? Une formation Elastisearch ? Next Decision est là ! alors Contactez-nous !