[comment]: # ({a804241c-5407a56a})
# 6 フロントエンドへのセキュアな接続

[comment]: # ({/a804241c-5407a56a})

[comment]: # ({5ca67f7f-7cadd09e})
#### 概要

このセクションでは、ZabbixフロントエンドとZabbixサーバー間の安全なTLS接続のためのZabbixセットアップ手順と設定例を示します。

[comment]: # ({/5ca67f7f-7cadd09e})

[comment]: # ({b3284585-ec63018e})
#### 設定

デフォルトでは、Zabbix WebインターフェースとZabbix サーバー間の通信は暗号化されていません。セキュリティを向上させるには、両側でTLSを有効にしてください。以下は、そのための最も簡単な方法の例です。

1\. 証明書と鍵を生成します。

作業ディレクトリを作成します。

```bash
sudo mkdir -p /etc/zabbix/ssl && cd /etc/zabbix/ssl
```

CA証明書を作成します（`MyZabbixCA` の値は実際のコモンネームに合わせて調整してください）。

```bash
sudo openssl genrsa -out ca.key 4096
sudo openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/CN=MyZabbixCA/"
```

Zabbix サーバー用の秘密鍵と証明書を生成します（`zabbix-server.example.com` の値は実際のコモンネームに合わせて調整してください）。

```bash
sudo openssl genrsa -out server.key 2048
sudo openssl req -new -key server.key -out server.csr -subj "/CN=zabbix-server.example.com/"
sudo openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -sha256 -out server.crt
```

Zabbix Webインターフェース用の秘密鍵と証明書を生成します（`zabbix-frontend-node` の値は実際のコモンネームに合わせて調整してください）。

```bash
sudo openssl genrsa -out frontend.key 2048
sudo openssl req -new -key frontend.key -out frontend.csr -subj "/CN=zabbix-frontend-node/"
sudo openssl x509 -req -days 365 -in frontend.csr -CA ca.crt -CAkey ca.key -CAcreateserial -sha256 -out frontend.crt
```

2\. 適切な権限を設定します。 

Zabbix サーバー用（所有者/グループは、お使いのディストリビューションのZabbix サーバーデーモンユーザーに応じて調整してください）。

```bash
sudo chown root:zabbix /etc/zabbix/ssl/server.{crt,key} /etc/zabbix/ssl/ca.crt
sudo chmod 640 /etc/zabbix/ssl/server.key
sudo chmod 644 /etc/zabbix/ssl/server.crt /etc/zabbix/ssl/ca.crt
```

Webインターフェース用（所有者/グループは、お使いのディストリビューションのWebサーバーユーザーに応じて調整してください）。

```bash
sudo chown root:www-data /etc/zabbix/ssl/frontend.{crt,key}
sudo chmod 640 /etc/zabbix/ssl/frontend.key
sudo chmod 644 /etc/zabbix/ssl/frontend.crt
```

3\. Zabbix サーバーを設定します。

`zabbix_server.conf` に以下を追加します。

```ini
TLSFrontendAccept=cert
TLSCertFile=/etc/zabbix/ssl/server.crt
TLSKeyFile=/etc/zabbix/ssl/server.key
TLSCAFile=/etc/zabbix/ssl/ca.crt
# Optionally:
# TLSFrontendCertIssuer=/CN=MyZabbixCA/
# TLSFrontendCertSubject=/CN=zabbix-frontend-node/
```

その後、サーバーを再起動します。

```bash
sudo systemctl restart zabbix-server
```

4\. Zabbix Webインターフェースを設定します。

[Webインターフェースのインストール](/manual/installation/frontend)中に、*Encrypt connections from Web interface* オプション（必要に応じて *Verify server certificate issuer and subject* オプションも）を有効にし、*TLS CA file*、*TLS key file*、*TLS certificate file* フィールド（必要に応じて *Server TLS certificate issuer* および *Server TLS certificate subject* フィールドも）に入力します。

![](../../../../assets/en/manual/appendix/install/frontend_encrypt.png){width="600"}

|Parameter|Description|
|--|--------|
|*TLS CA file*|サーバー証明書の検証に使用する認証局（CA）証明書ファイルのフルパスを指定します。|
|*TLS key file*|クライアント証明書に対応するクライアント秘密鍵ファイルのフルパスを指定します。|
|*TLS certificate file*|相互TLS認証が必要な場合に、クライアント証明書ファイルのフルパスを指定します。|
|*Server TLS certificate issuer*|サーバー証明書と照合する発行者の識別名（DN）を指定します。|
|*Server TLS certificate subject*|サーバー証明書と照合するサブジェクトの識別名（DN）を指定します。|

既存のインストールでは、`zabbix.conf.php` の以下のフィールドを編集します。

```php
$ZBX_SERVER_TLS['ACTIVE'] = '1';
$ZBX_SERVER_TLS['CA_FILE'] = '/etc/zabbix/ssl/ca.crt';
$ZBX_SERVER_TLS['KEY_FILE'] = '/etc/zabbix/ssl/frontend.key';
$ZBX_SERVER_TLS['CERT_FILE'] = '/etc/zabbix/ssl/frontend.crt';
// Optionally:
// $ZBX_SERVER_TLS['CERTIFICATE_ISSUER']  = '/CN=MyZabbixCA/';
// $ZBX_SERVER_TLS['CERTIFICATE_SUBJECT'] = '/CN=zabbix-server.example.com/';
```

5\. Zabbix WebインターフェースまたはZabbix サーバーのログファイルにエラーメッセージがないことを確認して、暗号化を検証します。

```bash
tail -f /var/log/zabbix/zabbix_server.log
```

[comment]: # ({/b3284585-ec63018e})
