1、前言
但默认情况下,zabbix是通过不安全的线路进行传输的,有可能造成数据泄露等危险,为此我为我的zabbix服务添加数据证书的配置以便通过加密通道传输数据。
2、生成数字证书
当配置好zabbix服务端和agent后,即可继续配置数字证书的部分,首先需要使用openssl生成数字证书。
我们需要先生成ca证书,然后通过ca证书签发服务器证书与客户端证书。先建立一个文件夹以便存放所有证书文件:
[root@localhost ~]#mkdir crt [root@localhost ~]#cd crt/
然后使用以下命令建立所需要的证书文件。其中CN部分可以修改为服务器的域名或IP,在实际应用中推荐修改为服务器的域名:
#生成ca私钥 [root@localhost ~/crt]#openssl genrsa 2048 > ca.key Generating RSA private key, 2048 bit long modulus ..........+++ .......+++ e is 65537 (0x10001) [root@localhost ~/crt]#ll total 4 -rw-r--r-- 1 root root 1675 Dec 31 10:33 ca.key #使用ca私钥建立ca证书 [root@localhost ~/crt]#openssl req -new -x509 -nodes -days 3650 -key ca.key -subj /CN=Signing\ CA/OU=Development\ group/O=Zabbix\ SIA/DC=zabbix/DC=com > ca.crt [root@localhost ~/crt]#ll total 16 -rw-r--r-- 1 root root 1350 Dec 31 10:38 ca.crt -rw-r--r-- 1 root root 1675 Dec 31 10:33 ca.key #生成服务器csr证书请求文件 [root@localhost ~/crt]#openssl req -newkey rsa:2048 -days 3650 -nodes -keyout server.key -subj /CN=server/OU=Development\ grout/O=Zabbix\ SIA/DC=zabbix/DC=com > server.csr Generating a 2048 bit RSA private key .......................................+++ ..................................+++ writing new private key to 'server.key' ----- [root@localhost ~/crt]#ll total 12 -rw-r--r-- 1 root root 1350 Dec 31 10:38 ca.crt -rw-r--r-- 1 root root 1675 Dec 31 10:33 ca.key -rw-r--r-- 1 root root 1013 Dec 31 10:36 server.csr -rw-r--r-- 1 root root 1708 Dec 31 10:36 server.key #使用ca证书与私钥签发服务器证书 [root@localhost ~/crt]#openssl x509 -req -in server.csr -days 3650 -CA ca.crt -CAkey ca.key -set_serial 01 > server.crt Signature ok subject=/CN=server/OU=Development grout/O=Zabbix SIA/DC=zabbix/DC=com Getting CA Private Key [root@localhost ~/crt]#ll total 20 -rw-r--r-- 1 root root 1350 Dec 31 10:38 ca.crt -rw-r--r-- 1 root root 1675 Dec 31 10:33 ca.key -rw-r--r-- 1 root root 1216 Dec 31 10:39 server.crt -rw-r--r-- 1 root root 1013 Dec 31 10:36 server.csr -rw-r--r-- 1 root root 1708 Dec 31 10:36 server.key #生成客户端csr证书请求文件 [root@localhost ~/crt]#openssl req -newkey rsa:2048 -days 3650 -nodes -keyout client.key -subj /CN=client/OU=Development\ group/O=Zabbix\ SIA/DC=zabbix/DC=com > client.csr Generating a 2048 bit RSA private key ................................+++ ...............................................................................................+++ writing new private key to 'client.key' ----- [root@localhost ~/crt]#ll total 28 -rw-r--r-- 1 root root 1350 Dec 31 10:38 ca.crt -rw-r--r-- 1 root root 1675 Dec 31 10:33 ca.key -rw-r--r-- 1 root root 1013 Dec 31 10:41 client.csr -rw-r--r-- 1 root root 1708 Dec 31 10:41 client.key -rw-r--r-- 1 root root 1216 Dec 31 10:39 server.crt -rw-r--r-- 1 root root 1013 Dec 31 10:36 server.csr -rw-r--r-- 1 root root 1708 Dec 31 10:36 server.key #使用ca证书与私钥签发客户端证书 [root@localhost ~/crt]#openssl x509 -req -in client.csr -days 3650 -CA ca.crt -CAkey ca.key -set_serial 01 > client.crt Signature ok subject=/CN=client/OU=Development group/O=Zabbix SIA/DC=zabbix/DC=com Getting CA Private Key 完成后,该目录下一共有8个文件: [root@localhost ~/crt]#ll total 32 -rw-r--r-- 1 root root 1350 Dec 31 10:38 ca.crt -rw-r--r-- 1 root root 1675 Dec 31 10:33 ca.key -rw-r--r-- 1 root root 1216 Dec 31 10:42 client.crt -rw-r--r-- 1 root root 1013 Dec 31 10:41 client.csr -rw-r--r-- 1 root root 1708 Dec 31 10:41 client.key -rw-r--r-- 1 root root 1216 Dec 31 10:39 server.crt -rw-r--r-- 1 root root 1013 Dec 31 10:36 server.csr -rw-r--r-- 1 root root 1708 Dec 31 10:36 server.key
3、服务端配置
将所有生成文件复制到zabbix的配置目录备份(此步是备份文件,不是必须) [root@localhost ~]#mkdir -p /usr/local/zabbix_server/etc/zabbix_crt [root@localhost ~/crt]#cp * /usr/local/zabbix_server/etc/zabbix_crt 将以下文件复制到/usr/local/zabbix_server/etc/zabbix_server.conf.d下,作为服务的配置文件: [root@localhost /usr/local/zabbix_server/etc]#cp zabbix_crt/ca.crt zabbix_server.conf.d/ [root@localhost /usr/local/zabbix_server/etc]#cp zabbix_crt/server.crt zabbix_server.conf.d/ [root@localhost /usr/local/zabbix_server/etc]#cp zabbix_crt/server.key zabbix_server.conf.d/ [root@localhost /usr/local/zabbix_server/etc]#cd zabbix_server.conf.d/ [root@localhost /usr/local/zabbix_server/etc/zabbix_server.conf.d]#ll total 16 -rw-r--r-- 1 root root 1350 Dec 31 10:48 ca.crt -rw-r--r-- 1 root root 1216 Dec 31 10:48 server.crt -rw-r--r-- 1 root root 1708 Dec 31 10:48 server.key #修改配置文件zabbix_server.conf: [root@localhost /usr/local/zabbix_server/etc]#vim zabbix_server.conf #修改TLSCAFile配置 TLSCAFile=/usr/local/zabbix_server/etc/zabbix_server.conf.d/ca.crt #修改TLSCertFile配置 TLSCertFile=/usr/local/zabbix_server/etc/zabbix_server.conf.d/server.crt #修改TLSKeyFile配置 TLSKeyFile=/usr/local/zabbix_server/etc/zabbix_server.conf.d/server.key #重启服务 [root@localhost /usr/local/zabbix_server/etc]#service zabbix_server restart Shutting down zabbix_server: [ OK ] Starting zabbix_server: [ OK ]
4、客户端配置
客户端和服务端类似 将文件复制到/usr/local/zabbix_agent/etc/zabbix_agentd.conf.d下,作为服务的配置文件: [root@localhost /usr/local/zabbix_agent/etc/zabbix_agentd.conf.d]#ll total 20 -rw-r--r-- 1 root root 1350 Dec 31 10:45 ca.crt -rw-r--r-- 1 root root 1216 Dec 31 10:45 client.crt -rw-r--r-- 1 root root 1708 Dec 31 10:45 client.key #修改配置文件zabbix_agentd.conf: [root@localhost /usr/local/zabbix_agent/etc]#vim zabbix_agentd.conf #修改agent连接模式 TLSConnect=cert #修改TLSCAFile配置 TLSCAFile=/usr/local/zabbix_agent/etc/zabbix_agentd.conf.d/ca.crt #修改TLSCertFile配置 TLSCertFile=/usr/local/zabbix_agent/etc/zabbix_agentd.conf.d/client.crt #修改TLSKeyFile配置 TLSKeyFile=/usr/local/zabbix_agent/etc/zabbix_agentd.conf.d/client.key #重启服务 [root@localhost /usr/local/zabbix_agent]#service zabbix_agentd restart Shutting down zabbix_agentd: [ OK ] Starting zabbix_agentd: [ OK ]
5、界面配置
然后就可以
6、说明
ca的公钥在客户端和服务端都需要,用来验证服务端和客户端证书是否合法
客户端接收到服务端证书后,用ca证书验证服务端证书是否合法(是否为此ca签发,能用ca公钥解开,即合法),如果合法,用服务端证书将文件加密,发送到服务端,服务端用自己的私钥将文件解密(应该用在主动模式,客户端主动连接服务端)
服务端接收到客户端证书后,用ca证书验证客户端证书是否合法(是否为此ca签发,能用ca公钥解开,即合法),如果合法,用客户端证书将文件加密,发送到客户端,客户端用自己的私钥将文件解密(应该用在被动模式,服务端主动连接客户端)
参考文档:
https://www.zabbix.com/documentation/3.0/manual/encryption
http://www.cnblogs.com/xuliangwei/p/6658834.html 里面的配置文件解释
–
–
–
评论前必须登录!
注册