ZabbixはSSL証明書を使用してhttpsログインを実現します

Zabbixは、パフォーマンスの高いnginxサーバーの使用を推奨しています。安全なアクセスを満たすために、主にnginxのsslモジュールを構成し、zabbix-serverに対応する証明書ファイルを生成するためにhttpsを構成する必要があります。

Zabbix 5.0は以前にインストールされており、選択した構成環境は次のとおりです。

ZabbixはSSL証明書を使用してhttpsログインを実現します

詳細なインストール方法については、公式ドキュメントを参照してくださいhttps
//www.zabbix.com/download?zabbix = 5.0&os_distribution = centos&os_version = 7&db = mysql&ws = nginx

使用したnginxのバージョンが推奨バージョンと一致しないことに注意してください。実際の状況に応じてnginxを構成してください。

NginxSSLモジュールのインストール

nginxがhttp_ssl_moduleモジュールをインストールするかどうかを確認します。

/usr/sbin/nginx -V

configure引数の場合:-with-http_ssl_moduleが表示され、インストールされます

ZabbixはSSL証明書を使用してhttpsログインを実現します

私はyumによってインストールされたnginxを独自のsslモジュールとともに使用します。nginxはモジュールを動的に更新できないため、モジュールをロードする必要がある場合は、再コンパイルしてインストールする必要があります。

新しいモジュールを追加するたびに、以前にコンパイルしたモジュールをconfigureパラメーターに
追加する必要があります。新しいモジュールを追加するたびに、最初に以前の構成を記録する必要があります。

nginxをコンパイルしてインストールするための多くのオンラインチュートリアルがあります。

opnensslを使用して証明書を生成します

証明書は、無料または大規模なクラウドコンピューティングメーカーで有料で申請できます。以下は、AlibabaCloudが無料で証明書を申請する方法です
https://common-buy.aliyun.com/?spm=5176.15089375.4329286700.5.33ca1232so4ULs&commodityCode=cas#/buy
証明書は通常約1年間有効です。
ただし、証明書はドメイン名にバインドされている必要があり、厳密に確認する必要があります。イントラネットには適していません。

opensslを使用して証明書情報を無料で生成することもできますが、少し面倒です。

証明書情報を保存するための新しいディレクトリを作成します

mkdir /etc/nginx/ssl
cd /etc/nginx/ssl

opensslツールを使用してRSA秘密鍵を生成します

まず、opensslツールがインストールされているかどうかを確認します

openssl version

ZabbixはSSL証明書を使用してhttpsログインを実現します

通常、centosにはopensslツールが付属していますが、そうでない場合は、http://www.openssl.orgの公式Webサイトにアクセスしてダウンロードしてインストールしてください。

rsa秘密鍵を生成する

openssl genrsa -des3 -out server.key 2048

上記のように:des3はアルゴリズムであり、2048ビット強度(機密性のため)です。server.keyは、キーファイルの名前です。-outは、生成されたファイルのパスと名前を意味します。

ZabbixはSSL証明書を使用してhttpsログインを実現します

暗号化フレーズ、ここで構成するのは123456です

生成された秘密鍵を表示する

openssl rsa -text -in server.key

ZabbixはSSL証明書を使用してhttpsログインを実現します

生成されたキーを表示

cat server.key

ZabbixはSSL証明書を使用してhttpsログインを実現します

証明書署名要求CSRファイルを作成する

CSR(Certificate Signing Request)ファイル。デジタル証明書を申請する前に、証明書のキーファイルとCSRファイルを生成する必要があります。CSRファイルは、サーバー情報とユニット情報を含む公開鍵証明書の元のファイルであり、レビューのためにCA認証センターに提出する必要があります。

次のコマンドを使用します

openssl req -new -key server.key -out server.csr

ZabbixはSSL証明書を使用してhttpsログインを実現します
説明:

Enter pass phrase for server.key:                              #123456
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN       # 输入国家代码,中国填写 CN
State or Province Name (full name) []:hubei  #省份
Locality Name (eg, city) [Default City]:wuhan  #城市
Organization Name (eg, company) [Default Company Ltd]:ctbt #公司名 瞎填
Organizational Unit Name (eg, section) []:ops     #部门瞎填
Common Name (eg, your name or your server's hostname) []:172.31.208.128  #域名,没有域名,我用IP地址
Email Address []:[email protected]   #邮箱

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:  #无需填写

上記の操作の後、次の2つのファイルが現在のディレクトリに生成されます。

server.key server.csr
ZabbixはSSL証明書を使用してhttpsログインを実現します

csrファイルを表示

openssl req -text -in server.csr -noout

ZabbixはSSL証明書を使用してhttpsログインを実現します

CA証明書を生成する

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

x509の意味
:指定された
形式の意味-入力:指定された要求ファイルの意味-signkey:自己署名

-日:有効期間、3650日、10年を構成します

ZabbixはSSL証明書を使用してhttpsログインを実現します

server.crtはサーバー証明書情報です

PEMパスフレーズをはがす

キーのPEMパスフレーズ(暗号化されたパスワード)を設定した後、秘密キーキーを設定するときにパスワード設定がキーファイルに書き込まれる場合があります。これにより、Nginx / Apacheシリーズのサーバーは起動時にPEMパスフレーズの入力を要求します。その結果、起動に失敗します。パスワードを削除し、次のOpenSSLコマンドを使用してserver.key.unsecureファイルを生成する必要があります。

openssl rsa -in server.key -out server.key.unsecure

問題が発生しやすい証明書キーなどにパスワードを追加するために、単純な環境は必要ないことをお勧めします。

httpsは一般的に一方向の認証であるため、単純な環境では双方向の認証を使用する必要はなく、クライアント証明書を生成する必要もありません。

クライアント証明書を生成する必要がある場合は、CA証明書の生成と同様です。

openssl genrsa -out client.key 2048
openssl req -new -key client.key -out client.csr
openssl x509 -req -days 3650 -in client.csr -signkey client.key -out client.crt

nginx configure ssl

最初に/etc/nginx/ngnix.confを編集し、サーバー80をコメントアウトして、ポート80を介してzabbix-webにアクセスしないようにします。

cd /etc/nginx/
cp nginx.conf nginx.conf.bak
vim nginx.conf

変更する前に構成ファイルをバックアップする

ZabbixはSSL証明書を使用してhttpsログインを実現します

nginx -tコマンドを使用して、変更後に構成ファイルの構文が正しいかどうかを確認します

ZabbixはSSL証明書を使用してhttpsログインを実現します

httpsの構成である/etc/nginx/conf.dパスでzabbix.confを構成します。

touch /etc/nginx/conf.d/zabbix.conf

次のように編集します

ZabbixはSSL証明書を使用してhttpsログインを実現します

主な構成ファイルは次のとおりです

server {
        listen          80;
        server_name     172.31.208.128;
        return 301 https://172.31.208/128$request_uri;
}

server {
        listen 443 ssl;
        ssl_certificate   ssl/server.crt; #证书文件
        #ssl_certificate_key  ssl/server.key; #密钥文件
        ssl_certificate_key  ssl/server.key.unsecure; #剥离密码的密钥文件,如果没有对密钥加密,直接使用server.key
        ssl_session_timeout 5m;   #缓存有效期
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用加密算法
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  #安全连接的可选加密协议
        ssl_prefer_server_ciphers on; #使用服务器的首选算法
        root    /usr/share/zabbix;

        index   index.php;

次に、nginx -tを使用して構文を確認し、問題がない場合はnginxを再起動します。

nginxが正常に起動した場合、zabbixへのアクセスはhttpsを使用することです。

ZabbixはSSL証明書を使用してhttpsログインを実現します

ZabbixはSSL証明書を使用してhttpsログインを実現します

証明書情報を確認する

ZabbixはSSL証明書を使用してhttpsログインを実現します

ZabbixはSSL証明書を使用してhttpsログインを実現します

この時点で、証明書がインストールされます

それが役に立つかどうかはわかりませんが、顧客は私をだましました。くそーNSFOCUSは、私のWebサイトがもう安全でないと言うことは決してありません、ハハハ

おすすめ

転載: blog.51cto.com/11555417/2545852