So installieren Sie Elasticsearch auf Ubuntu 22.04 mit SSL. Elasticsearch 8 ist eine leistungsstarke, skalierbare, verteilte Suche und Datenanalyse in Echtzeit. Hier erfahren Sie, wie Sie SSL für Ihre Elasticsearch-Installation mit Nginx-Reverse-Proxy unter Ubuntu 22.04 konfigurieren.
Sie erstellen eine Subdomain für Ihren Elasticsearch-Dienst und installieren das kostenlose Let’s Encrypt SSL-Zertifikat mit Certbot.
Dieses Setup wurde auf der Google Cloud Platform mit Ubuntu 22.04 LTS getestet. Dieser Leitfaden funktioniert also perfekt auf anderen Cloud-Service-Anbietern wie AWS, Azure oder allen VPS oder dedizierten Servern.
Voraussetzungen
- Ein Server mit mindestens 2 GB RAM und 2 vCPU
- Ein Benutzer mit sudo-Berechtigungen.
Ersteinrichtung des Servers
Beginnen Sie damit, die Server-Softwarepakete auf die neueste verfügbare Version zu aktualisieren.
sudo apt update sudo apt upgrade
Unterdomäne konfigurieren
Stellen Sie sicher, dass Sie eine Subdomain verwenden, um auf Ihre Elasticsearch-Installation zuzugreifen.
Gehen Sie zu Ihrem DNS-Verwaltungsbereich und erstellen Sie einen neuen A
Eintrag mit dem gewünschten Namen für Ihre Subdomain (zum Beispiel search
) und Wert Ihrer Server-IP-Adresse.
Ihre Subdomain sieht also ähnlich aus wie die untenstehende. Wenn Sie Ihre Hauptdomäne konfigurieren möchten, können Sie dies ebenfalls tun.
search.yourdomain.com
Schritt 1:ElasticSearch installieren
Java ist bereits im Elasticsearch-Paket enthalten, sodass Sie Java nicht manuell installieren möchten. Erfahren Sie mehr über die Installation von Java unter Ubuntu 22.04.
Hier installieren wir Elasticsearch 8.
Beginnen Sie mit dem Importieren des GPG-Schlüssels des Elasticsearch-Repositorys.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
Fügen Sie das Repository zur Quellenliste Ihres Ubuntu-Servers oder -Systems hinzu.
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
Aktualisieren Sie die Paketliste und installieren Sie ElasticSearch.
sudo apt update sudo apt install elasticsearch
Sobald die Installation abgeschlossen ist, erhalten Sie das Superuser-Passwort, bitte notieren Sie es und sichern Sie es.
------------------- Security autoconfiguration information ---------------------- Authentication and authorization are enabled. TLS for the transport and HTTP layers is enabled and configured. The generated password for the elastic built-in superuser is : houbJ1uivo5b=aVYYPa5 If this node should join an existing cluster, you can reconfigure this with '/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token <token-here>' after creating an enrollment token on your existing cluster. You can complete the following actions at any time: Reset the password of the elastic built-in superuser with '/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic'. Generate an enrollment token for Kibana instances with '/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana'. Generate an enrollment token for Elasticsearch nodes with '/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node'. ---------------------------------------------------------------------------------
Der Elasticsearch-Dienst wird bei der Installation nicht automatisch gestartet. Sie müssen die folgenden Befehle ausführen, um den Elasticsearch-Dienst so zu konfigurieren, dass er automatisch mit systemd gestartet wird.
sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service sudo systemctl start elasticsearch.service
Sobald Elasticsearch installiert ist, können Sie Port 9200
einschränken von außen zugänglich, indem Sie elasticsearch.yml file
bearbeiten und kommentieren Sie network.host
aus und ersetzen Sie den Wert durch Internal IP or any IP or localhost
.
sudo nano /etc/elasticsearch/elasticsearch.yml
So sieht es also aus...
network.host: INTERNAL_IP
Sie können auch localhost
verwenden als Host oder eine beliebige IP-Adresse, die Sie wünschen.
Drücken Sie Ctrl+X
gefolgt von Y
und Enter
um die Datei zu speichern und zu beenden.
Starten und aktivieren Sie nun Elasticsearch beim Serverstart.
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
Stellen Sie nun sicher, dass Ihr Elasticsearch-Dienst ausgeführt wird.
sudo systemctl status elasticsearch
Schritt 2:Überprüfen Sie, ob Elasticsearch funktioniert
Testen Sie Ihre Installation, indem Sie eine HTTPs-Anforderung senden, indem Sie das Zertifikat mit dem folgenden Befehl anhängen.
Notieren Sie sich das Passwort, das Sie zuvor erhalten haben, Sie müssen es verwenden, wenn Sie dazu aufgefordert werden.
sudo su curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://INTERNAL_IP:9200
Geben Sie das Passwort ein, wenn Sie dazu aufgefordert werden.
Sie erhalten eine Antwort wie unten gezeigt.
{ "name" : "elasticsearch-vm", "cluster_name" : "elasticsearch", "cluster_uuid" : "vGrj3z4rQEWRBUdd9IhZWA", "version" : { "number" : "8.2.2", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "9876968ef3c745186b94fdabd4483e01499224ef", "build_date" : "2022-05-25T15:47:06.259735307Z", "build_snapshot" : false, "lucene_version" : "9.1.0", "minimum_wire_compatibility_version" : "7.17.0", "minimum_index_compatibility_version" : "7.0.0" }, "tagline" : "You Know, for Search" }
Schritt 3:Installieren und konfigurieren Sie Nginx für Elasticsearch
Jetzt ist es an der Zeit, Nginx zu installieren und zu konfigurieren. Führen Sie den folgenden Befehl aus, um Nginx zu installieren.
sudo apt install nginx
Jetzt können Sie den Nginx-Reverse-Proxy für Ihre Elasticsearch konfigurieren.
Standardkonfigurationen entfernen
sudo rm /etc/nginx/sites-available/default sudo rm /etc/nginx/sites-enabled/default
Erstellen Sie eine neue Nginx-Konfigurationsdatei.
sudo nano /etc/nginx/sites-available/search.conf
Fügen Sie Folgendes ein.
Hinweis:Sie müssen genau denselben IP
verwenden oder localhost
die Sie im Host der Elasticsearch-Konfiguration verwendet haben.
server { listen [::]:80; listen 80; server_name search.yourdomain.com; location / { proxy_pass http://INTERNAL_IP:9200; proxy_redirect off; proxy_read_timeout 90; proxy_connect_timeout 90; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; }
Speichern und beenden Sie die Datei.
Aktivieren Sie Ihre Konfiguration, indem Sie einen symbolischen Link erstellen.
sudo ln -s /etc/nginx/sites-available/search.conf /etc/nginx/sites-enabled/search.conf
Schritt 4:Let’s Encrypt SSL installieren
HTTPS ist ein Protokoll zur sicheren Kommunikation zwischen einem Server (Instanz) und einem Client (Webbrowser). Aufgrund der Einführung von Let’s Encrypt, das kostenlose SSL-Zertifikate bereitstellt, wird HTTPS von allen angenommen und schafft auch Vertrauen für Ihr Publikum.
sudo apt install python3-certbot-nginx
Jetzt haben wir Certbot von Let’s Encrypt für Ubuntu 22.04 installiert, führen Sie diesen Befehl aus, um Ihre Zertifikate zu erhalten.
sudo certbot --nginx --agree-tos --no-eff-email --redirect -m [email protected] -d search.domainname.com
Dieser Befehl installiert Free SSL, konfiguriert die Umleitung zu HTTPS und startet den Nginx-Server neu.
Schritt 5:SSL-Zertifikat erneuern
Von Let’s Encrypt bereitgestellte Zertifikate sind nur 90 Tage gültig, sodass Sie sie häufig erneuern müssen. Testen wir also die Erneuerungsfunktion mit dem folgenden Befehl.
sudo certbot renew --dry-run
Dieser Befehl testet den Ablauf des Zertifikats und konfiguriert die automatische Verlängerungsfunktion.
Bereiten Sie sich auf eine Rolle als Information Technology Professional vor mit Linux-Betriebssystem
Schlussfolgerung
Jetzt haben Sie gelernt, wie Sie Elasticsearch 8 installieren und mit Let’s Encrypt free ssl unter Ubuntu 22.04 sichern.
Vielen Dank für Ihre Zeit. Wenn Sie auf ein Problem oder Feedback stoßen, hinterlassen Sie bitte unten einen Kommentar.