Nginx系列之使用ssl模块配置支持代理HTTPS链接

Stella981
• 阅读 1049

Nginx系列之使用ssl模块配置支持HTTPS访问

1、博客前言介绍

最近在用nginx代理https的第三方链接,因为不是做运维,所以对nginx并不是特殊熟悉,所以到处询问摸索了挺久

2、查看ssl_module

要使用nginx代理https的链接,先用检查nginx是否已经有安装了ssl module,如图使用命令:
cd /usr/local/nginx/sbin && ./nginx -V
Nginx系列之使用ssl模块配置支持代理HTTPS链接

3、安装openssl和openssl-devel

如果nginx没安装openssl,可以使用yum命令进行安装

yum -y install openssl openssl-devel

检查openssl是否安装成功

openssl version -a

4、创建服务器私钥

使用命令,回车之后,会让你输入密钥,reload nginx配置时候都要你验证这个PAM密码

openssl genrsa -des3 -out server.key 1024 

5、创建签名请求的证书

创建签名请求的证书(CSR),用于颁发公钥

openssl req -new -key server.key -out server.csr  

6、配置nginx reload不需要密码

cp server.key server.key.org
openssl rsa -in server.key.org -out server.key   

7、标记证书使用上述私钥和CSR

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

8、修改nginx配置,支持SSL

server {
        listen       80;
        listen          443 ssl;
        server_name  localhost;
  
        #access_log  logs/host.access.log  main;
        # 开启ssl
        # ssl                  on;
        #证书位置
        ssl_certificate      /usr/local/nginx/server.crt;
        #私钥位置
        ssl_certificate_key  /usr/local/nginx/server.key;
        ssl_session_timeout  5m;
        #指定密码为openssl支持的格式
        ssl_protocols  SSLv2 SSLv3 TLSv1;
        #密码加密方式
        ssl_ciphers  HIGH:!aNULL:xues!MD5;
        #依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码
        ssl_prefer_server_ciphers   on;
        
        // ... 省略
}

注意点:

  • 要listen 443端口,https的端口是443,listen 443 ssl;
  • 要同时支持http和https链接代理,要注释ssl on;
  • ssl_certificatessl_certificate_key,这两个参数需要根据证书位置配置

配置location代理转发:

location /portal{ 
          proxy_pass  https://127.0.0.1:8888/portal;  
           proxy_set_header        Host $host;
           proxy_set_header        X-Real-IP $remote_addr;  #获取真实ip
           proxy_connect_timeout   90;
           proxy_send_timeout      90;
           proxy_read_timeout      90;
           proxy_buffer_size       4k;
           proxy_buffers           4 32k;
           proxy_busy_buffers_size 64k;
           proxy_temp_file_write_size 64k;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#获取代理者的真实ip
           proxy_redirect          off;  
     }

本文同步分享在 博客“smileNicky”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Nginx配置https
一、开启nginx的ssl模块1.未安装过nginx,编译安装配置参数如下:./configure\prefix/usr/local/nginx\withpcre\withhttp\_ssl\_modulessl模块\withhttp\_stub\_status\_module\wit
Wesley13 Wesley13
3年前
MySQL8开启ssl加密
1概述MySQL从5.7开始默认开启SSL加密功能,进入MySQL控制台后输入status可以查看ssl的状态,出现下图表示在使用ssl:!在这里插入图片描述(https://imgblog.csdnimg.cn/20200325131703934.png)另外,ssl加密需要密钥与证书,可以使用openssl手动生成或使用my
Wesley13 Wesley13
3年前
4. Nginx模块
Nginx官方模块1.ngx\_http\_stub\_status\_modulehttp://nginx.org/en/docs/http/ngx\_http\_stub\_status\_module.html。(https://www.oschina.net/action/GoToLink?urlhttp%3A%2
Stella981 Stella981
3年前
Nginx SSL补充安装
在centos中,配置nginx的https时,出现如下错误。nginx:\emerg\unknowndirective"ssl"in/usr/local/nginx/conf/nginx.conf:102,说明编译是没有启用SSL。到解压的nginx目录下./configurewith
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这