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 :

installation 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) :

installation elasticsearch

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 !