前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Zabbix 利用 Nginx 实现 HTTPS 访问

Zabbix 利用 Nginx 实现 HTTPS 访问

作者头像
Kevin song
发布2020-06-09 11:52:51
1.6K0
发布2020-06-09 11:52:51
举报

HTTPS

在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是 SSL,加密的详细内容依赖SSL。

HTTPS 原理

① 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器 ;

② 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端;该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机数;

③ 客户端对服务器的证书进行验证,并抽取服务器的公用密钥;然后,再产生一个称作 pre_master_secret 的随机密码串,并使用服务器的公用密钥对其进行加密,并将加密后的信息发送给服务器 ;

④ 客户端与服务器端根据 pre_master_secret 以及客户端与服务器的随机数值独立计算出加密和 MAC密钥 ;

⑤ 客户端将所有握手消息的 MAC 值发送给服务器 ;

⑥ 服务器将所有握手消息的 MAC 值发送给客户端 。

安装openssl组件

代码语言:javascript
复制
#安装openssl组件
yum install openssl

验证nginx 是否安装 http_ssl_module 模块

生成证书和私钥

代码语言:javascript
复制
#生成key
openssl genrsa -out openssl.key 1024
#生成CA crt(用于签署csr)
openssl req -new -x509 -key openssl.key -out ca.crt -days 3650
#生成csr(生成的csr文件交给CA签名后形成服务端证书)
openssl req -new -key openssl.key -out server.csr
#生成crt(CSR文件必须有CA的签名才可形成服务器端证书)
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey openssl.key -CAcreateserial -out server.crt
#参数解释
-CA选项指明用于被签名的csr证书
-CAkey选项指明用于签名的密钥
-CAserial指明序列号文件
-CAcreateserial指明文件不存在时自动生成。#合并证书(openssl.key和ssl证书crt)
 cat openssl.key server.crt  > server.pem

Nginx 配置

代码语言:javascript
复制
[root@ZABBIX-Server conf.d]# egrep -v "*#|^$" zabbix.conf 
server {
    listen       6989;
    listen       443 ssl;
    server_name  192.168.99.50;
   fastcgi_buffers 8 128k;
   fastcgi_buffer_size 128k;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm index.php;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    location ~ \.php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
        include        fastcgi_params;
    }
location ~ ^/(php_status|ping)$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
        include        fastcgi_params;
    }
    ssl_certificate     /etc/ssl/server.pem;
    ssl_certificate_key /etc/ssl/server.pem;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    if ($server_port = 6989){
    rewrite ^(.*)$ https://$host$1 permanent;
    }
}
代码语言:javascript
复制
#验证配置文件
nginx -t
#重启nginx服务
systemctl   restart  nginx

访问 http 链接重定向至 https

代码语言:javascript
复制
if ($server_port = 6989){
    rewrite ^(.*)$ https://$host$1 permanent;
    }

Https 访问ZABBIX

代码语言:javascript
复制
https://192.168.99.50/zabbix/
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源搬运工宋师傅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档