前提条件
需要已经部署好的乐维监控系统。
首先,先生成自签名证书。这里提供一个快速生成证书的脚本。
#!/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进行访问
成功访问
错误信息