nginx_ssl模块

ssl

SSL:安全套接字层,由Netscape公司于1994年创建,它旨在通过Web创建安全的Internet通信。
它是一种标准协议,用于加密浏览器和服务器之间的通信。它允许通过Internet安全轻松地传输账号密码、银行卡、手机号等私密信息。

SSL常见应用:
https:启用ssl加密的安全HTTP传输协议
ipsec vpn
PKI:公钥基础设施,主要功能是绑定证书持有者的身份和相关的密钥对(通过为公钥及相关的用户身份信息签发数字证书),
为用户提供方便的证书申请、证书作废、证书获取、证书状态查询的途径,
并利用数字证书及相关的各种服务(证书发布,黑名单发布,时间戳服务等),
实现通信中各实体的身份认证、完整性、抗抵赖性和保密性.
标准:x.509
CA:证书颁发机构
RA:证书注册机构

证书的内容:
申请者的公钥
申请者的身份标识
证书有效期
颁发者的标识
颁发者的签名

HTTPS证书的选择
专业版OV型 不显示企业名
高级版EV型 显示企业名

HTTPS证书购买选择
单域名:仅能绑定一个域名
多域名:能绑定五个域名
通配符域名:不限个数

HTTPS注意事项
https仅支持二级域名
https不支持续费,证书到期重新申请替换
https显示绿色,说明整个网站都是https的
https显示黄色,网站代码中包含https不安全链接
https显示红色,证书不认或过期

企业内部实现https案例:
生成key密钥
生成证书签名请求文件(csr文件)
生成证书签名文件(ca文件)

1.安装nginx

[root@ssl ~]# vim /etc/yum.repos.d/nginx.repo
添加:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

[root@ssl ~]# yum -y install nginx

2.查看是否安装openssl和版本

[root@ssl ~]# rpm -q openssl
[root@ssl ~]# yum -y install openssl
[root@ssl ~]# openssl version

查看是否安装ssl模块

nginx -V  显示结果包含: --with-http_ssl_module

创建ssl密钥目录,并进入目录

[root@ssl ~]# mkdir -p /etc/nginx/ssl_key
[root@ssl ~]# cd /etc/nginx/ssl_key/

3.本机当CA:证书颁发机构,创建私钥

[root@ssl ssl_key]# openssl genrsa -idea -out server.key 2048

4.生成证书,去掉私钥的密码

[root@ssl ssl_key]# openssl req -days 3650 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt

5.配置https网站

[root@ssl ssl_key]# cd /etc/nginx/conf.d/
[root@ssl conf.d]# mv default.conf default.conf.bak
[root@ssl conf.d]# vim https.conf
添加:
server {
        listen 443 ssl;
        server_name https.benet.com;
        ssl_certificate ssl_key/server.crt;
        ssl_certificate_key ssl_key/server.key;

        location / {
                root /httpsweb;
                index index.html;
        }
}
[root@ssl conf.d]# mkdir /httpsweb
[root@ssl conf.d]# echo "<h1>https.benet.com</h1>" > /httpsweb/index.html
[root@ssl conf.d]# systemctl start nginx

6.修改host是文件,使用https://https.benet.com访问测试。
在这里插入图片描述
7.rewrite地址重写(http重定向到https)

[root@ssl ~]# vim /etc/nginx/conf.d/https.conf
server {
        listen 443 ssl;
        server_name https.benet.com;
        ssl_certificate ssl_key/server.crt;
        ssl_certificate_key ssl_key/server.key;

        location / {
                root /httpsweb;
                index index.html;
        }
}
server {
        listen 80;
        server_name https.benet.com;
#       rewrite .* https://https.benet.com;
#       rewrite .* https://$host$request_uri redirect;
#       rewrite .* https://$server_name$request_uri redirect;
        rewrite .* https://$server_name$1 redirect;
}

访问测试:http://https.benet.com
在这里插入图片描述
8.配置负载均衡https
环境:
nginx1:192.168.1.25
lb:192.168.1.24

lb安装nginx

[root@lb ~]# vim /etc/yum.repos.d/nginx.repo
添加:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

安装openssl

[root@ssl ~]# yum -y install openssl

把nginx1的nginx目录下的所有传到lb上

[root@lb ~]# scp -rp root@192.168.1.25:/etc/nginx/* /etc/nginx
删除备份的文件
[root@lb ~]# cd /etc/nginx/conf.d/
[root@lb conf.d]# ls
default.conf  default.conf.bak  lb.conf  ssl.conf
[root@lb conf.d]# rm -rf default.conf.bak

从新创建负载均衡配置文件

[root@lb ~]# vim /etc/nginx/conf.d/lb.conf
添加:
[root@lb ~]# cat /etc/nginx/conf.d/lb.conf 
upstream webhttps {
        server 192.168.1.25:443;
}

server {
        listen 443 ssl;
        server_name https.benet.com;
        ssl_certificate ssl_key/server.crt;
        ssl_certificate_key ssl_key/server.key;

        location / {
                proxy_pass https://webhttps;
                proxy_set_header Host $http_host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

		proxy_connect_timeout 30;
		proxy_send_timeout 60;
		proxy_read_timeout 60;

		proxy_buffering on;
		proxy_buffer_size 32k;
		proxy_buffers 4 128k;
        }
}
server {
        listen 80;
        server_name https.benet.com;
        return 302 https://$server_name$1;
}

启动服务:systemct start nginx

这里的小实验我只做了一台web。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值