Nginx实现HTTPS安全协议

https://blog.csdn.net/bin_zi_123/article/details/81302436?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

前段时间,公司需要对一个多应用模块的项目实现访问安全,在网上调研了下,最后决定使用nginx实现https安全协议

  1. 应用背景

平台应用模块较多,原本平台代理引入了nginx,经查询资料nginx本身支持https的协议请求,因此本次设计通过nginx对所有请求做安全化,对外请求统一使用https协议,内部模块之间请求仍使用API接口。

  1. 使用nginx https的优点

Nginx自身支持https安全协议技术已经成熟
Nginx本身为代理层,在nginx层设置https安全协议,可对所有应用模块适用
Nginx中配置https安全协议,无需更改任何应用模块
3. 场景模拟

独立服务器
独立服务器: 网络环境中不经过防火墙,且有且仅有一台主机服务器,nginx开启https请求,将站点对外访问转为安全协议,对内仍可http协议的API接口

冗余环境
冗余环境: 满足项目中冗余环境,当主机服务器宕机时,会将从机升级为主机,保证当前环境仍可满足安全访问,客户端通过域名访问站点,DNS服务器(网络设置配置多DNS),检测可以ping通的DNS主机作为目标机,检测该主机上nginx所配置的服务器名称,访问站点,当主机挂掉时,主机DNS将ping不通,直接访问指向从机

网络防火墙
网络中有防火墙: 当网络环境中有防火墙时,访问请求需经过防火墙做IP和端口映射,并且设置服务器的网关与防火墙端口网管相同。

  1. Nginx启用https

ginx启用https安全协议分为:生成证书和修改nginx.conf文件

生成证书
在 nginx安装目录中创建ssl文件夹用于存放证书
创建私钥
创建csr证书
去除密码
生成crt证书
修改nginx.conf文件
启用nginx.conf文件中的https协议
https监听443端口(默认)
配置https协议使用csr和crt证书
指定ssl为on
指定项目默认页面
重启nginx
nginx.conf文件模板如下:

#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

access_log      logs/****.access.log;
error_log       logs/****.error.log;

sendfile        on;

keepalive_timeout  65;


# HTTPS server
#

server {
listen 443; #ssl端口
listen 18092; #用户习惯用http访问,加上80,后面通过497状态码让它自动跳到443端口
server_name 192.192.192.190;
#为一个server{…}开启ssl支持
ssl on;
#ssl_certificate …/ssl/***.crt;

       ssl_certificate      ../test/***.crt;
    ssl_certificate_key  ../test/***.key;
   
    #让http请求重定向到https请求  
    error_page 497  https://$http_host$uri?$args;

   ssl_session_cache    shared:SSL:1m;
   ssl_session_timeout  5m;

   ssl_ciphers  HIGH:!aNULL:!MD5;
   ssl_prefer_server_ciphers  on;        

   location / {
        proxy_pass  http://192.192.192.192:18090;
        proxy_set_header Host      $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_redirect http:// $scheme://; #做https跳转
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }
    
    location ~\.(action) { 
       proxy_pass http://192.192.192.192:18090; 
       #proxy_redirect off; 
       client_max_body_size 100m; 
       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 1;
       proxy_read_timeout 360;
       proxy_buffering off;
       expires off;
   } 
    location ~\.(html) { 
       proxy_pass http://192.192.192.192:18090; 
       #proxy_redirect off; 
       client_max_body_size 100m; 
       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 1;
       proxy_read_timeout 360;
       proxy_buffering off;
       expires off;
   } 

}

}
————————————————
版权声明:本文为CSDN博主「Abin0406」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/bin_zi_123/article/details/81302436

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值