SSL を使用して Ubuntu 22.04 に Elasticsearch をインストールする方法。 Elasticsearch 8 は、強力でスケーラブルなリアルタイム分散検索およびデータ分析です。ここでは、Ubuntu 22.04 で Nginx リバース プロキシを使用して Elasticsearch インストールに SSL を構成する方法を学習します。
Elasticsearch サービスのサブドメインを作成し、Certbot を使用して無料の Let’s Encrypt SSL 証明書をインストールします。
このセットアップは、Ubuntu 22.04 LTS を実行している Google Cloud Platform でテストされています。したがって、このガイドは、AWS、Azure、VPS、または専用サーバーなどの他のクラウド サービス プロバイダーで完璧に機能します。
前提条件
- 最低 2GB の RAM と 2vCPU を備えたサーバー
- sudo 権限を持つユーザー
サーバーの初期設定
サーバー ソフトウェア パッケージを利用可能な最新バージョンに更新することから始めます。
sudo apt update sudo apt upgrade
サブドメインの構成
サブドメインを使用して Elasticsearch インストールにアクセスしてください。
DNS 管理セクションに移動し、新しい A
を作成します サブドメインに使用する名前を記録します (例:search
) とサーバー IP アドレスの値。
したがって、サブドメインは次のようになります。メイン ドメインを構成したい場合は、それも可能です。
search.yourdomain.com
ステップ 1:エラスティックサーチをインストールする
Java はすでに Elasticsearch パッケージに含まれているため、Java を手動でインストールする必要はありません。 Ubuntu 22.04 への Java のインストールについて詳しくは、こちらをご覧ください。
ここでは、Elasticsearch 8 をインストールします。
まず、Elasticsearch リポジトリの GPG キーをインポートします。
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
リポジトリを 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
パッケージ リストを更新し、ElasticSearch をインストールします。
sudo apt update sudo apt install elasticsearch
インストールが完了すると、スーパー ユーザーのパスワードが送られてきます。注意して安全に保管してください。
------------------- 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'. ---------------------------------------------------------------------------------
Elasticsearch サービスはインストール時に自動的に開始されません。以下のコマンドを実行して、systemd を使用して Elasticsearch サービスが自動的に開始されるように設定する必要があります。
sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service sudo systemctl start elasticsearch.service
Elasticsearch をインストールしたら、ポート 9200
を制限できます elasticsearch.yml file
を編集して外部からアクセスできないようにする network.host
のコメントを外します 値を Internal IP or any IP or localhost
に置き換えます .
sudo nano /etc/elasticsearch/elasticsearch.yml
だから、このように見えます..
network.host: INTERNAL_IP
localhost
も使用できます ホストまたは任意の IP アドレスとして。
Ctrl+X
をヒット 続いて Y
そして Enter
ファイルを保存して終了します。
サーバーの起動時に Elasticsearch を起動して有効にします。
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
Elasticsearch サービスが実行されていることを確認してください。
sudo systemctl status elasticsearch
ステップ 2:Elasticsearch が機能するかどうかを確認する
以下のコマンドを使用して証明書を添付して HTTPS リクエストを送信し、インストールをテストします。
以前に受け取ったパスワードをメモしておいてください。プロンプトが表示されたら、それを使用する必要があります。
sudo su curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic https://INTERNAL_IP:9200
プロンプトが表示されたらパスワードを入力します。
以下に示すような応答が返されます。
{ "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" }
ステップ 3:Elasticsearch 用に Nginx をインストールして構成する
次に、Nginx をインストールして構成します。以下のコマンドを実行して、Nginx をインストールします。
sudo apt install nginx
これで、Elasticsearch から Nginx リバース プロキシを構成できます。
デフォルト設定を削除
sudo rm /etc/nginx/sites-available/default sudo rm /etc/nginx/sites-enabled/default
新しい Nginx 構成ファイルを作成します。
sudo nano /etc/nginx/sites-available/search.conf
以下を貼り付けます。
注:まったく同じ IP
を使用する必要があります または localhost
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; }
ファイルを保存して終了します。
シンボリック リンクを作成して構成を有効にします。
sudo ln -s /etc/nginx/sites-available/search.conf /etc/nginx/sites-enabled/search.conf
ステップ 4:Let’s Encrypt SSL をインストールする
HTTPS は、サーバー (インスタンス) とクライアント (Web ブラウザー) 間の安全な通信のためのプロトコルです。無料の SSL 証明書を提供する Let’s Encrypt の導入により、HTTPS はすべての人に採用され、視聴者にも信頼をもたらします。
sudo apt install python3-certbot-nginx
これで、Ubuntu 22.04 用の Let’s Encrypt によって Certbot がインストールされました。このコマンドを実行して、証明書を受け取ります。
sudo certbot --nginx --agree-tos --no-eff-email --redirect -m [email protected] -d search.domainname.com
このコマンドは、無料の SSL をインストールし、HTTPS へのリダイレクトを構成し、Nginx サーバーを再起動します。
ステップ 5:SSL 証明書の更新
Let’s Encrypt が提供する証明書は 90 日間のみ有効であるため、頻繁に更新する必要があります。それでは、次のコマンドを使用して更新機能をテストしましょう。
sudo certbot renew --dry-run
このコマンドは、証明書の有効期限をテストし、自動更新機能を構成します。
情報技術の専門家として働く役割に備える Linux オペレーティング システムで
結論
これで、Elasticsearch 8 をインストールして、Ubuntu 22.04 で Let’s Encrypt フリー ssl を使用して保護する方法を学習しました。
御時間ありがとうございます。問題やフィードバックに直面した場合は、下にコメントを残してください。