Come installare Elasticsearch su Ubuntu 22.04 con SSL. Elasticsearch 8 è una potente ricerca distribuita scalabile in tempo reale e analisi dei dati. Qui imparerai come configurare SSL per la tua installazione Elasticsearch con proxy inverso Nginx su Ubuntu 22.04.
Creerai un sottodominio per il tuo servizio Elasticsearch e installerai il certificato SSL Let's Encrypt gratuito utilizzando Certbot.
Questa configurazione è testata su Google Cloud Platform con Ubuntu 22.04 LTS. Quindi questa guida funzionerà perfettamente su altri provider di servizi cloud come AWS, Azure o qualsiasi VPS o server dedicato.
Prerequisiti
- Un server con minimo 2 GB di RAM e 2 vCPU
- Un utente con privilegi sudo.
Configurazione iniziale del server
Inizia aggiornando i pacchetti software del server all'ultima versione disponibile.
sudo apt update sudo apt upgrade
Configura sottodominio
Assicurati di utilizzare un sottodominio per accedere alla tua installazione di Elasticsearch.
Vai alla tua sezione di gestione DNS e crea un nuovo A
registra con il nome che desideri per il tuo sottodominio (ad esempio search
) e il valore dell'indirizzo IP del tuo server.
Quindi il tuo sottodominio sarà simile a quello qui sotto. Se desideri configurare il tuo dominio principale puoi farlo anche tu.
search.yourdomain.com
Passaggio 1:installa ElasticSearch
Java è già incluso nel pacchetto Elasticsearch, quindi non vuoi installare Java manualmente. Ulteriori informazioni sull'installazione di Java su Ubuntu 22.04.
Qui installeremo Elasticsearch 8.
Inizia importando la chiave GPG del repository Elasticsearch.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
Aggiungi il repository all'elenco delle fonti del tuo server o sistema Ubuntu.
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
Aggiorna l'elenco dei pacchetti e installa ElasticSearch.
sudo apt update sudo apt install elasticsearch
Una volta completata l'installazione, riceverai la password del super utente, tienilo presente e proteggila.
------------------- 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'. ---------------------------------------------------------------------------------
Il servizio Elasticsearch non viene avviato automaticamente al momento dell'installazione, è necessario eseguire i comandi seguenti per configurare il servizio Elasticsearch in modo che si avvii automaticamente utilizzando systemd.
sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service sudo systemctl start elasticsearch.service
Una volta installato Elasticsearch, puoi limitare la porta 9200
dall'esterno, modificando il elasticsearch.yml file
e decommenta il network.host
e sostituisci il valore con Internal IP or any IP or localhost
.
sudo nano /etc/elasticsearch/elasticsearch.yml
Quindi sembra così..
network.host: INTERNAL_IP
Puoi anche usare localhost
come host o qualsiasi indirizzo IP desideri.
Premi Ctrl+X
seguito da Y
e Enter
per salvare il file ed uscire.
Ora avvia e abilita Elasticsearch all'avvio del server.
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
Ora assicurati che il tuo servizio Elasticsearch sia in esecuzione.
sudo systemctl status elasticsearch
Fase 2:verifica se Elasticsearch funziona
Verifica la tua installazione inviando una richiesta HTTPs allegando il certificato utilizzando il comando seguente.
Prendi nota della password che hai ricevuto in precedenza, dovrai usarla quando richiesto.
sudo su curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://INTERNAL_IP:9200
Inserisci la password quando richiesto.
Riceverai una risposta come mostrato di seguito.
{ "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" }
Fase 3:installa e configura Nginx per Elasticsearch
Ora è il momento di installare e configurare Nginx. Esegui il comando seguente per installare Nginx.
sudo apt install nginx
Ora puoi configurare il proxy inverso Nginx da Elasticsearch.
Rimuovi le configurazioni predefinite
sudo rm /etc/nginx/sites-available/default sudo rm /etc/nginx/sites-enabled/default
Crea un nuovo file di configurazione Nginx.
sudo nano /etc/nginx/sites-available/search.conf
Incolla quanto segue.
Nota:devi utilizzare esattamente lo stesso IP
o localhost
che hai utilizzato nella configurazione host di Elasticsearch.
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; }
Salva ed esci dal file.
Abilita la tua configurazione creando un link simbolico.
sudo ln -s /etc/nginx/sites-available/search.conf /etc/nginx/sites-enabled/search.conf
Fase 4:installa Let's Encrypt SSL
HTTPS è un protocollo per la comunicazione sicura tra un server (istanza) e un client (browser web). Grazie all'introduzione di Let's Encrypt, che fornisce certificati SSL gratuiti, HTTPS è adottato da tutti e fornisce anche fiducia al tuo pubblico.
sudo apt install python3-certbot-nginx
Ora abbiamo installato Certbot di Let's Encrypt per Ubuntu 22.04, esegui questo comando per ricevere i tuoi certificati.
sudo certbot --nginx --agree-tos --no-eff-email --redirect -m [email protected] -d search.domainname.com
Questo comando installerà Free SSL, configurerà il reindirizzamento a HTTPS e riavvierà il server Nginx.
Fase 5:rinnovo del certificato SSL
I certificati forniti da Let's Encrypt sono validi solo per 90 giorni, quindi è necessario rinnovarli spesso. Quindi, testiamo la funzionalità di rinnovo utilizzando il seguente comando.
sudo certbot renew --dry-run
Questo comando verificherà la scadenza del certificato e configura la funzione di rinnovo automatico.
Preparati per un ruolo di Professionista dell'Information Technology con sistema operativo Linux
Conclusione
Ora hai imparato come installare Elasticsearch 8 e proteggerlo con Let's Encrypt free ssl su Ubuntu 22.04.
Grazie per il tuo tempo. In caso di problemi o feedback, si prega di lasciare un commento qui sotto.