前提条件
需要已经部署好的乐维监控系统。
首先,先生成自签名证书。这里提供一个快速生成证书的脚本。
#!/bin/bash
baseshell=$(cd $(dirname $0);pwd)
# 变量定义
IP=$1
# 生成证书配置文件
cat > ${baseshell}/ssl.cnf << EOF
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = CN
ST = GD
L = GZ
O = EDGE
OU = BASE
CN = $IP
[v3_req]
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = $IP
DNS.2 = 8.8.8.8
IP.1 = $IP
EOF
# 生成crt和key证书
openssl req -x509 -nodes -days 9999 -newkey rsa:2048 -keyout ${baseshell}/ssl.key -out ${baseshell}/ssl.crt -config ${baseshell}/ssl.cnf -sha256
执行脚本需要输入一个IP或域名的参数
然后会在脚本所在目录下面生成名为ssl.crt的证书和ssl.key的密钥。

这里以华为云为例。(每个账号每年有20张免费证书的额度,阿里云和腾讯云亦是如此)
1.打开控制台,进入云证书管理,创建测试证书

2.勾选同意协议后,点击确定

3.创建后,刷新列表,就会出现一个新的证书,点击右边的证书申请,填写相关信息进行申请

4.填写证书绑定域名

5.填写对应的信息,然后提交申请,等待审核通过后即可

编辑Nginx配置文件
vim /itops/nginx/conf/vhosts/lwjk_app.conf
若使用的是域名进行访问,则server_name需修改为对应的域名。
1. 配置8081端口为https
在8081的server块下面增加如下SSL配置:
ssl_certificate cert.pem;
ssl_certificate_key cert.key;
ssl_session_cache shared:SSL:5m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cacheshared:SSL:10m;
ssl_session_timeout10m;
其中ssl_certificate为存放证书的路径,可以为crt结尾或者pem结尾;
ssl_certificate_key为证书密钥,必须是key结尾。

2. 将默认的80端口修改为443端口
在原80端口的server块下面增加如下SSL配置:
ssl_certificate cert.pem;
ssl_certificate_key cert.key;
ssl_session_cache shared:SSL:5m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cacheshared:SSL:10m;
ssl_session_timeout10m;
其中ssl_certificate为存放证书的路径,可以为crt结尾或者pem结尾;
ssl_certificate_key为证书密钥,必须是key结尾。

3.配置HTTP自动跳转HTTPS
新增加一个80端口的server块

4.Nginx重新加载配置
测试Nginx配置文件是否配置错误
nginx -t -c /itops/nginx/conf/nginx.conf
重新加载Nginx配置文件,使配置立刻生效
nginx -s reload -c /itops/nginx/conf/nginx.conf

配置好Nginx后,执行乐维内置的PHP命令,重新生成访问配置文件
php /itops/nginx/html/lwjk_app/bin/manager init --choice=W --with-check=0 --web-api=https://IP(域名):8081


如图所示,即为执行成功。
若是没有配置HTTP自动跳转HTTPS
则还需要修改乐维默认配置文件
vim /itops/nginx/html/lwjk_app/.env
将ZABBIX_RPC_URL改成使用HTTPS协议进行访问

输入访问地址,是使用HTTP协议

成功跳转HTTPS

或者直接使用https进行访问

成功访问

错误信息