このトピックでは、Transport Layer Security(TLS) 暗号化と HTTP 基本認証. オプションで、他のタイプの認証も設定できます。その情報の参照を提供します。
( 古い用語である Secure Sockets Layer(SSL) は、TLS と同じ意味で頻繁に使用されます。 このトピックでは、 TLS.)
特に断りのない限り、このトピック内のすべてのコマンドは、を使用するユーザーとして入力する必要があります。 root
権限。
以下をお勧めします。
Web サーバーが TLS を使用している。
TLS はこのトピックの範囲外です。ただし、実稼動環境では、自己署名付き証明書ではなく、実際の証明書を使用することを強くお勧めします。
検索エンジンは、Web サーバーと同じホストで実行されます。 異なるホスト上で検索エンジンと Web サーバーを実行する方法は、このトピックでは扱いません。
検索エンジンと Web サーバーを同じホスト上に配置する利点は、暗号化された通信を傍受できないことです。 検索エンジンの Web サーバーは、Adobe CommerceまたはMagento Open Sourceの Web サーバーと同じである必要はありません。例えば、Adobe Commerceは Apache を実行し、Elasticsearch/OpenSearch は nginx を実行します。
検索エンジンがパブリック Web に公開されている場合は、認証を設定する必要があります。 検索エンジンのインスタンスがネットワーク内で保護されている場合は、この操作が不要な場合があります。 ホスティングプロバイダーと協力して、インスタンスを保護するために実装する必要があるセキュリティ対策を決定します。
次のリソースのいずれかを参照してください。
Apache
Nginx
2.4.4 で OpenSearch のサポートが追加されました。OpenSearch は互換性のあるElasticsearchの分岐です。 詳しくは、 Elasticsearchを OpenSearch に移行 を参照してください。
この節では、nginx を 安全でない プロキシを使用して、Adobe Commerceがこのサーバーで実行されている検索エンジンを使用できるようにします。 この節では、HTTP 基本認証の設定については説明しません。これについては、 nginx との安全な通信.
この例でプロキシが保護されていないのは、設定と検証がより簡単になるからです。 必要に応じて、このプロキシで TLS を使用できます。これをおこなうには、プロキシ情報をセキュリティで保護されたサーバーブロック設定に追加する必要があります。
グローバルな /etc/nginx/nginx.conf
には次の行が含まれ、以降の節で説明するその他の設定ファイルが読み込まれます。
include /etc/nginx/conf.d/*.conf;
このセクションでは、 nginx サーバー。
テキストエディターを使用したファイルの作成 /etc/nginx/conf.d/magento_es_auth.conf
を次の内容で指定します。
server {
listen 8080;
location /_cluster/health {
proxy_pass http://localhost:9200/_cluster/health;
}
}
nginx を再起動します。
service nginx restart
次のコマンドを入力して、プロキシが機能することを確認します。
curl -i http://localhost:<proxy port>/_cluster/health
例えば、プロキシでポート 8080 を使用する場合は、次のようになります。
curl -i http://localhost:8080/_cluster/health
成功を示す次の表示に類似したメッセージ:
HTTP/1.1 200 OK
Date: Tue, 23 Feb 2019 20:38:03 GMT
Content-Type: application/json; charset=UTF-8
Content-Length: 389
Connection: keep-alive
{"cluster_name":"elasticsearch","status":"yellow","timed_out":false,"number_of_nodes":1,"number_of_data_nodes":1,"active_primary_shards":5,"active_shards":5,"relocating_shards":0,"initializing_shards":0,"unassigned_shards":5,"delayed_unassigned_shards":0,"number_of_pending_tasks":0,"number_of_in_flight_fetch":0,"task_max_waiting_in_queue_millis":0,"active_shards_percent_as_number":50.0}
このセクションでは、 HTTP 基本認証 セキュリティで保護されたプロキシを使用します。 TLS と HTTP Basic 認証を併用すると、Elasticsearch、OpenSearch、またはお使いのアプリケーションサーバーとの通信が傍受されるのを防ぐことができます。
Nginx は HTTP Basic 認証をネイティブにサポートしているので、例えば、HTTP Basic 認証をオーバーにすることをお勧めします。 ダイジェスト認証:実稼動環境ではお勧めしません。
その他のリソース:
詳しくは、次の節を参照してください。
Apache htpasswd
Elasticsearchまたは OpenSearch ( magento_elasticsearch
(この例では)。
パスワードを作成するには:
次のコマンドを入力して、 htpasswd
は既にインストールされています:
which htpasswd
パスが表示される場合は、そのパスがインストールされます。コマンドが出力を返さない場合、 htpasswd
がインストールされていません。
必要に応じて、をインストールします。 htpasswd
:
apt-get -y install apache2-utils
yum -y install httpd-tools
の作成 /etc/nginx/passwd
パスワードを保存するディレクトリ:
mkdir -p /etc/nginx/passwd
htpasswd -c /etc/nginx/passwd/.<filename> <username>
セキュリティ上の理由から、 <filename>
隠すべきだつまり、ピリオドで始める必要があります。
(オプション)。 別のユーザーをパスワードファイルに追加するには、 -c
(作成)オプション:
htpasswd /etc/nginx/passwd/.<filename> <username>
のコンテンツを検証します。 /etc/nginx/passwd
が正しい。
このセクションでは、nginx サーバにアクセスできるユーザーを指定する方法について説明します。
次に、 安全でない プロキシを使用します。 セキュアプロキシを使用するには、次のコンテンツ(リスンポートを除く)をセキュアサーバーブロックに追加します。
テキストエディターを使用して、次のいずれかを変更します。 /etc/nginx/conf.d/magento_es_auth.conf
(セキュリティで保護されていない)、または以下の内容を含むセキュリティで保護されたサーバーブロック。
server {
listen 8080;
server_name 127.0.0.1;
location / {
limit_except HEAD {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/passwd/.htpasswd_magento_elasticsearch;
}
proxy_pass http://127.0.0.1:9200;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /_aliases {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/passwd/.htpasswd_magento_elasticsearch;
proxy_pass http://127.0.0.1:9200;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
include /etc/nginx/auth/*.conf;
}
前の例に示した検索エンジンのリスンポートは、例です。 セキュリティ上の理由から、デフォルト以外のリッスンポートを使用することをお勧めします。
このセクションでは、検索エンジンサーバーにアクセスできるユーザーを指定する方法について説明します。
次のコマンドを入力して、認証設定を保存するディレクトリを作成します。
mkdir /etc/nginx/auth/
テキストエディターを使用したファイルの作成 /etc/nginx/auth/magento_elasticsearch.conf
を次の内容で指定します。
location /elasticsearch {
auth_basic "Restricted - elasticsearch";
auth_basic_user_file /etc/nginx/passwd/.htpasswd_magento_elasticsearch;
proxy_pass http://127.0.0.1:9200;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
セキュアプロキシを設定した場合は、 /etc/nginx/conf.d/magento_es_auth.conf
.
nginx を再起動し、次のセクションに進みます。
service nginx restart
この節では、HTTP 基本認証が機能していることを確認する 2 つの方法について説明します。
curl
コマンドを使用して、クラスタの状態を取得するには、ユーザ名とパスワードを入力する必要があることを確認しますcurl
クラスタの状態を確認するコマンド次のコマンドを入力します。
curl -i http://<hostname, ip, or localhost>:<proxy port>/_cluster/health
例えば、検索エンジンサーバーでコマンドを入力し、プロキシがポート 8080 を使用する場合:
curl -i http://localhost:8080/_cluster/health
次のメッセージが表示され、認証に失敗したことを示します。
HTTP/1.1 401 Unauthorized
Date: Tue, 23 Feb 2016 20:35:29 GMT
Content-Type: text/html
Content-Length: 194
Connection: keep-alive
WWW-Authenticate: Basic realm="Restricted"
<html>
<head><title>401 Authorization Required</title></head>
<body bgcolor="white">
<center><h1>401 Authorization Required</h1></center>
</body>
</html>
次のコマンドを試してみてください。
curl -i -u <username>:<password> http://<hostname, ip, or localhost>:<proxy port>/_cluster/health
例:
curl -i -u magento_elasticsearch:mypassword http://localhost:8080/_cluster/health
この時点で、コマンドは次のようなメッセージで成功します。
HTTP/1.1 200 OK
Date: Tue, 23 Feb 2016 20:38:03 GMT
Content-Type: application/json; charset=UTF-8
Content-Length: 389
Connection: keep-alive
{"cluster_name":"elasticsearch","status":"yellow","timed_out":false,"number_of_nodes":1,"number_of_data_nodes":1,"active_primary_shards":5,"active_shards":5,"relocating_shards":0,"initializing_shards":0,"unassigned_shards":5,"delayed_unassigned_shards":0,"number_of_pending_tasks":0,"number_of_in_flight_fetch":0,"task_max_waiting_in_queue_millis":0,"active_shards_percent_as_number":50.0}
同じタスクを実行します ( 検索エンジンの設定 例外 クリック Yes から Enable HTTP Auth の一覧を開き、指定したフィールドにユーザー名とパスワードを入力します。
クリック Test Connection 正常に動作するようにし、 Save Config.
続行する前に、キャッシュをフラッシュしてインデックスを再作成する必要があります。