nginx_ssl模块

本文涉及的产品
.cn 域名,1个 12个月
简介: nginx_ssl模块

SSL:

       安全套接字层,由Netscape公司于1994年创建,它旨在通过Web创建安全的Internet通信。

       它是一种标准协议,用于加密浏览器和服务器之间的通信。它允许通过Internet安全轻松地传输账号密码、银行卡、手机号等私密信息。


SSL常见应用:    

   https:启用ssl加密的安全HTTP传输协议 443

   ipsec vpn

PKI:公钥基础设施,主要功能是绑定证书持有者的身份和相关的密钥对(通过为公钥及相关的用户身份信息签发数字证书),

   为用户提供方便的证书申请、证书作废、证书获取、证书状态查询的途径,

   并利用数字证书及相关的各种服务(证书发布,黑名单发布,时间戳服务等),

   实现通信中各实体的身份认证、完整性、抗抵赖性和保密性.

   标准:x.509

CA:证书颁发机构

RA:证书注册机构

证书的内容:

   申请者的公钥

   申请者的身份标识

   证书有效期

   颁发者的标识

   颁发者的签名



HTTPS证书的选择

   DV型  域名型,不显示企业名

   OV型  企业型,显示企业名

   EV型  企业增强型,防止代申请    



HTTPS证书购买选择

   单域名:仅能绑定一个域名

   多域名:能绑定五个域名

   通配符域名:不限个数    



HTTPS注意事项

   https仅支持二级域名    

   https不支持续费,证书到期重新申请替换

   https显示绿色,说明整个网站都是https的

   https显示黄色,网站代码中包含https不安全链接

   https显示红色,证书不认或过期    



企业内部实现https案例:


生成key密钥

生成证书签名请求文件(csr文件)

生成证书签名文件(ca文件)


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

rpm -q openssl

yum -y install openssl

openssl version


 查看nginx是否安装ssl模块

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


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

mkdir -p /etc/nginx/ssl_key

cd /etc/nginx/ssl_key


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

openssl genrsa -idea -out server.key 2048


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

openssl req -days 3650 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt


4.配置https网站

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;

       }

}

保存退出

mkdir /httpsweb

echo "<h1>https.benet.com</h1>" > /httpsweb/index.html

systemctl restart nginx


5.客户机修改hosts文件,使用https://https.benet.com访问测试。

6.rewrite地址重写(http重定向到https)

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;

}

保存退出


7.配置负载均衡https

vim /etc/nginx/conf.d/lb_https.conf

添加:

upstream webhttps {

       server 192.168.1.109:443;

       server 192.168.1.111: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;

       }

}

server {

       listen 80;

       server_name https.benet.com;

       return 302 https://$server_name$1;

}

保存退出


8.模拟案例:配置https的blog、zh(web2和web1配置相同)选做

(1)配置web1的blog

vim /etc/nginx/conf.d/blog.conf

添加:

server {

       listen 443 ssl;

       server_name blog.benet.com;

       ssl_certificate ssl_key/server.crt;

       ssl_certificate_key ssl_key/server.key;

       root /wordpress;

       index index.php index.html;


       location ~ \.php$ {

               root /wordpress;

               fastcgi_pass 192.168.1.110:9000;

               fastcgi_index index.php;

               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

               include fastcgi_params;

       }

}

server {

       listen 80;

       server_name blog.benet.com;

#       rewrite .* https://blog.benet.com;

#       rewrite .* https://$host$request_uri redirect;

#       rewrite .* https://$server_name$request_uri redirect;

       rewrite .* https://$server_name$1 redirect;

}

保存退出


(2)配置web1的zh

vim /etc/nginx/conf.d/zh.conf

添加:

server {

       listen 443 ssl;

       server_name zh.benet.com;

       ssl_certificate ssl_key/server.crt;

       ssl_certificate_key ssl_key/server.key;

       root /zh;

       index index.php index.html;


       location ~ \.php$ {

               root /zh;

               fastcgi_pass 192.168.1.110:9000;

               fastcgi_index index.php;

               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

               include fastcgi_params;

       }

}

server {

       listen 80;

       server_name zh.benet.com;

#       rewrite .* https://zh.benet.com;

#       rewrite .* https://$host$request_uri redirect;

#       rewrite .* https://$server_name$request_uri redirect;

       rewrite .* https://$server_name$1 redirect;

}

保存退出    

nginx -t

systemctl restart nginx


(3)配置负载均衡lb1

vim /etc/nginx/conf.d/lb1.conf

添加:

upstream web_cluster {

       server 192.168.1.109:443;

       server 192.168.1.111:443;

}


server {

       listen 443 ssl;

       server_name blog.benet.com;

       ssl_certificate ssl_key/server.crt;

       ssl_certificate_key ssl_key/server.key;

       location / {

               proxy_pass https://web_cluster;

               include nginx_params;

       }

}

server {

       listen 443 ssl;

       server_name zh.benet.com;

       ssl_certificate ssl_key/server.crt;

       ssl_certificate_key ssl_key/server.key;

       location / {

               proxy_pass https://web_cluster;

               include nginx_params;

   }

}

server {

       listen 80;

       server_name blog.benet.com;

       return 302 https://$server_name$1;

}

server {

       listen 80;

       server_name zh.benet.com;

       return 302 https://$server_name$1;

}

保存退出

nginx -t

systemctl restart nginx


==============================

www.baidu.com.         #FQDN 完整合格域名


.         根服务器,世界共13台(美8  欧4  日1)

com     顶级或一级服务器(com 商业; gov 政府;edu 教育;mil 军事;org 自由论坛;net 网络组织;cn 中国;us 美国)

baidu    二级域名

www        主机头


相关文章
|
6月前
|
应用服务中间件 nginx
Nginx安装nginx-rtmp-module模块
【2月更文挑战第4天】 nginx中的模块虽然就是类似插件的概念,但是它无法像VsCode那样轻松的安装扩展。 nginx要安装其它模块必须同时拿到nginx源代码和模块源代码,然后手动编译,将模块打到nginx中,最终生成一个名为nginx的可执行文件。
521 6
|
6月前
|
应用服务中间件 nginx
百度搜索:蓝易云【利用nginx内置ngx_http_mirror_module模块实现流量复制及流量放大】
以上就是使用Nginx内置 `ngx_http_mirror_module`模块实现流量复制和流量放大的简要示例。通过合理配置和利用该模块,可以实现更复杂的流量控制和调试需求。
110 1
|
3月前
|
负载均衡 应用服务中间件 API
Nginx:location配置模块的用法(一)
Nginx:location配置模块的用法(一)
446 2
|
1月前
|
应用服务中间件 nginx C++
nginx的cgi模块
nginx的cgi模块
29 0
|
3月前
|
缓存 应用服务中间件 nginx
安装nginx-http-flv-module模块
本文介绍如何为Nginx安装`nginx-http-flv-module`模块。此模块基于`nginx-rtmp-module`二次开发,不仅具备原模块的所有功能,还支持HTTP-FLV播放、GOP缓存、虚拟主机等功能。安装步骤包括:确认Nginx版本、下载相应版本的Nginx与模块源码、重新编译Nginx并加入新模块、验证模块安装成功。特别注意,此模块已包含`nginx-rtmp-module`功能,无需重复编译安装。
163 1
|
3月前
|
负载均衡 应用服务中间件 Linux
在Linux中,常用的 Nginx 模块有哪些,常来做什么?
在Linux中,常用的 Nginx 模块有哪些,常来做什么?
|
3月前
|
缓存 前端开发 应用服务中间件
Nginx:location配置模块的用法(二)
Nginx:location配置模块的用法(二)
113 2
|
4月前
|
应用服务中间件 Linux nginx
FFmpeg开发笔记(四十)Nginx集成rtmp模块实现RTMP推拉流
《FFmpeg开发实战》书中介绍了如何使用FFmpeg向网络推流,简单流媒体服务器MediaMTX不适用于复杂业务。nginx-rtmp是Nginx的RTMP模块,提供基本流媒体服务。要在Linux上集成rtmp,需从官方下载nginx和nginx-rtmp-module源码,解压后在nginx目录配置并添加rtmp模块,编译安装。配置nginx.conf启用RTMP服务,监听1935端口。使用ffmpeg推流测试,如能通过VLC播放,表明nginx-rtmp运行正常。更多详情见书本。
116 0
FFmpeg开发笔记(四十)Nginx集成rtmp模块实现RTMP推拉流
|
3月前
|
Ubuntu 前端开发 JavaScript
如何在 Ubuntu 14.04 上为 Nginx 添加 gzip 模块
如何在 Ubuntu 14.04 上为 Nginx 添加 gzip 模块
27 0
|
6月前
|
Ubuntu 应用服务中间件 nginx
ubuntu编译安装nginx及安装nginx_upstream_check_module模块
以上是编译安装Nginx和安装 `nginx_upstream_check_module`模块的基本步骤。根据你的需求和环境,你可能需要进一步配置Nginx以满足特定的要求。
273 3