ZabbixのSSL設定方法を解説|証明書の設定からHTTPS化まで

目次

はじめに

「Zabbixの管理画面をHTTPSで開けるようにしたいけれど、SSL証明書はどこに設定すればいいの?」
「証明書を用意したのに、ブラウザでアクセスすると警告が表示される」と困っていませんか。

Zabbixを社内サーバーやクラウド環境へ構築したあと、HTTPのまま管理画面へアクセスできても、HTTPSへ切り替える段階で証明書やWebサーバーの設定場所が分からず迷うことがあります。

この記事では、SSL証明書を準備してWebサーバーへ設定し、HTTPSでZabbixの管理画面へアクセスできるようにするまでの流れを紹介します。

ZabbixのSSL/TLSとは?

ZabbixでSSL/TLSを設定すると、Zabbix server・Zabbix proxy・Zabbix agentなどの間で送受信する監視データを暗号化できます。

ここでは、ZabbixでSSL/TLSによって暗号化できる通信と、内部通信・Web画面のHTTPS化を分けて考える理由を順番に説明します。

ZabbixでSSL/TLSによって暗号化できる通信

Zabbixでは、server・proxy・agent間で送受信する監視データをSSL/TLSで暗号化できます。

通信する双方に証明書またはPSK(事前共有鍵)を設定することで、監視データが平文のまま送受信されるのを防げます。

Zabbix内部の通信とWeb画面のHTTPS化は別に考える

Zabbixのserver・proxy・agent間のSSL/TLS設定と、Web画面のHTTPS設定は別に行います。

内部通信はZabbix側で設定しますが、Web画面はApacheやNginxなどのWebサーバー側で証明書を設定するため、それぞれの通信経路に合わせた設定が必要です。

ZabbixのSSL/TLS通信方式と証明書設定

ZabbixでSSL/TLS通信を設定する場合は、証明書を使う方式とPSK(事前共有鍵)を使う方式から環境に合った方法を選びます。

ここでは、証明書方式とPSK方式の違い、証明書方式で必要になるファイルについて順番に説明します。

証明書方式とPSK方式の違い

証明書方式は、証明書と秘密鍵を使って通信相手を認証し、Zabbix server・proxy・agent間の通信を暗号化する方法です。

一方、PSK方式では通信する双方に同じ事前共有鍵を設定するため、証明書の発行や更新は必要ありませんが、PSKと識別名を正しく一致させる必要があります。

証明書方式で必要になるファイル

証明書方式では、CA証明書、自身の証明書、それに対応する秘密鍵を用意します。

Zabbixの設定ファイルで「TLSCAFile」「TLSCertFile」「TLSKeyFile」にそれぞれのファイルを指定すると、証明書を使ったSSL/TLS通信を利用できます。

ZabbixにSSL証明書を設定する方法

Zabbixで証明書を使ったSSL/TLS通信を行うには、最初に認証局(CA)の証明書、Zabbix用の証明書、秘密鍵を用意します。

ここでは、証明書と秘密鍵の準備からサーバー・エージェントへの設定まで、SSL/TLS通信を有効にする流れを順番に説明します。

認証局・証明書・秘密鍵を用意する

証明書方式では、CA証明書、Zabbix serverやagentで使用する証明書、それに対応する秘密鍵を用意します。

証明書は通信相手が検証できるものを使用し、秘密鍵はZabbixを実行するユーザーだけが読み取れるよう安全に管理します。

Zabbixサーバー側のSSL/TLS設定

Zabbix serverでは、zabbix_server.confにCA証明書、自身の証明書、秘密鍵などの設定を記述します。

設定ファイルを保存したらZabbix serverを再起動し、変更したSSL/TLS設定を反映させます。

Zabbixエージェント側のSSL/TLS設定

Zabbix agentでは、zabbix_agentd.confまたはzabbix_agent2.confにSSL/TLSの設定を記述します。

証明書方式では「TLSConnect=cert」「TLSAccept=cert」などを設定し、保存後にZabbix agentを再起動して反映させます。

TLSCAFile・TLSCertFile・TLSKeyFileを設定する

TLSCAFileにはCA証明書、TLSCertFileには自身の証明書、TLSKeyFileには秘密鍵のファイルパスを指定します。

それぞれ正しいパスを設定し、Zabbixを実行するユーザーがファイルを読み取れることも確認しておきましょう。

ZabbixのWeb画面をHTTPS化する方法

ZabbixのWeb画面をHTTPS化する場合は、Zabbix serverの内部通信ではなく、管理画面を配信しているApacheやNginxなどのWebサーバーにSSL証明書を設定します。

ここでは、WebサーバーへのSSL証明書の設定から、HTTPSでZabbixの管理画面へ接続するまでの流れを順番に説明します。

WebサーバーにSSL証明書を設定する

ZabbixのWeb画面をHTTPS化するには、管理画面を配信しているApacheやNginxにSSL証明書と秘密鍵を設定します。

HTTPSで使用する設定に証明書と秘密鍵のファイルパスを指定し、Webサーバーを再起動して反映させます。

社内環境や検証環境で自己署名証明書を使う場合は、通常のSSL証明書との違いやブラウザで警告が出る理由も確認しておきましょう。
▶自己署名証明書とは?SSL証明書との違いや作成方法を解説

HTTPSでZabbixの管理画面に接続する

設定が完了したら、ブラウザから「https://」で始まるZabbixのURLへアクセスします。

証明書の警告が表示されず、ログイン後の管理画面まで正常に開ければ、HTTPSで接続できていることを確認できます。

ZabbixのSSL/TLS設定後に確認すること

ZabbixのSSL/TLS設定が完了したら、Zabbix serverとagentなどの間で暗号化通信が正常に行われているか確認します。

ここでは、暗号化通信の接続確認と、接続できない場合に確認する設定やファイルについて順番に説明します。

暗号化通信で正常に接続できるか確認する

SSL/TLS設定後は、ZabbixのWeb画面で最新データを開き、監視値が正常に更新されているか確認します。

あわせてserverやagentのログを確認し、TLS接続に関するエラーがなければ正常に通信できていると判断できます。

接続できない場合に確認する設定とファイル

TLS接続に失敗する場合は、双方のTLS設定や証明書・秘密鍵のファイルパスを確認します。

ファイルの読み取り権限や証明書の有効期限にも問題がないか確認し、通信する双方の設定が正しく対応しているか見直してみましょう。

証明書に問題がありそうな場合は、SSL/TLSの検証エラーごとの原因と対処法も確認しておくと切り分けやすくなります。
▶Failed SSL Validationとは?SSL証明書の検証に失敗する原因と対処法

ZabbixのSSL/TLS設定で注意するポイント

ZabbixでSSL/TLSを設定するときは、証明書と秘密鍵を正しい場所へ配置し、Zabbixのプロセスが必要なファイルを読み取れる権限になっているか確認します。

ここでは、証明書と秘密鍵の配置・権限と、設定変更後に確認する通信状態について順番に説明します。

証明書と秘密鍵の配置・権限を確認する

証明書と秘密鍵は、TLSCertFileやTLSKeyFileに指定したパスへ配置し、Zabbixから読み取れる状態にします。

設定したパスと実際の保存場所が一致しているか、Zabbixを実行するユーザーに必要な読み取り権限があるかも確認しましょう。

設定変更後にZabbixの通信状態を確認する

SSL/TLSの設定を変更したあとは、Zabbix serverやagentを再起動して設定を反映します。

その後、監視データが正常に更新されているかを確認し、ログにTLS接続エラーがなければ通信できていると判断できます。

まとめ

ZabbixでSSL/TLSを設定するときは、Zabbix server・proxy・agent間の内部通信と、ブラウザから管理画面へアクセスするHTTPS通信を分けて設定します。

内部通信を証明書方式で暗号化する場合は、CA証明書・証明書・秘密鍵を用意し、TLSCAFile・TLSCertFile・TLSKeyFileに正しいファイルパスを指定します。

一方、ZabbixのWeb画面をHTTPS化する場合は、ApacheやNginxなどのWebサーバー側にSSL証明書と秘密鍵を設定し、HTTPSでログイン画面を表示できるか確認します。

設定後はZabbix serverやagentを再起動し、最新データの更新状況とログを確認して、TLS接続エラーが発生していないことまで確認しましょう。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次