windows系统配置Nginx使用SSL证书实现Https反向代理
Nginx反向代理服务,可以代理接收请求,并把请求转发到设置好的其他服务器上。
例如,Nginx服务器为 100.101.102.103,A服务为 100.101.102.104 ,通过Nginx配置文件,可以是Nginx服务器代理接收A服务的请求,然后转发到A服务上。
通过SSL证书配置可以是Nginx具有接收Https的能力,然后通过http转发到A服务上;
或者接收Http请求,通过Nginx配置,强制转成Https请求转发到A服务上。
Nginx可以代理多个服务。
本文使用的是windows系统服务器操作,SSL证书为腾讯云的免费SSL(下文有详细步骤)。
一、安装Nginx
Nginx下载官网地址:http://nginx.org/en/download.html
此次使用的是1.18.0版本。

下载后找位置解压

然后在该目录下运行命令窗口(可以在文件夹地址栏输入cmd进入)

输入nginx.exe回车提示报错

nginx: [emerg] CreateDirectory() "E:\tools\Nginx\nginx-1.18.0/temp/client_body_temp" failed (3: The system cannot find the path specified)
原因是没有在nginx目录里找到temp文件夹,手动新建一个。

重新启动,浏览器输入localhsot 进入nginx页面成功即为安装成功!

二、申请SSL证书
腾讯云可以申请域名型免费SSL 腾讯云

立即购买


上面需要注意的提示为:仅支持绑定一个二级域名或者子域名,例如 tencent.com、cloud.tencent.com、dnspod.cloud.tencent.com的其中之一 。
也就是说申请的一个SSL只能绑定一个域名,但是可以多次申请绑定域名的二级域名或者子域名。
可以根据需要绑定域名或者二级域名或者子域名。例如我们申请的SSL所绑定的域名为 test.com

下一步需要解析验证,就是在域名所在的网站上根据腾讯云给出的参数去解析一条记录,来证明这个域名的使用权。


例如我的域名是在美橙互联上,地址:https://www.cndns.com

则需要在域名解析这里添加一条记录,主机名填写腾讯云提供的主机记录字段,记录类型选择TXT,记录值填写腾讯云提供的记录值字段。
然后保存后等待生效,一般在一个半小时内,然后等待腾讯云签发即可。

在证书详情里下载证书文件


三、Nginx配置SSL证书实现Https代理
实现代理接收https请求,把请求转发到其他服务的http接口上。
(例如服务A在100.101.102.104:8080上,只允许http访问,nginx 服务在 100.101.102.103:8080 上,通过nginx配置SSL证书来实现接口https的请求,然后把请求代理发送http请求到A服务上)。
把 test.com.key 和 test.com_bundle.crt 两个文件放到nginx安装目录下的conf目录里(和nginx.conf放一起)
修改 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; sendfile on; keepalive_timeout 65; #gzip on; server {
listen 81;
server_name test.com; return 301 https://$host$request_uri; error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
} # HTTPS server
#
server {
listen 8080 ssl; # nginx所使用的端口
server_name test.com; # SSL 证书绑定的域名 ssl_certificate test.com_bundle.crt;
ssl_certificate_key test.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers CDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on; location / {
proxy_pass http://100.101.102.104:8080; # 需要转发到的服务地址 A服务的地址
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
}
}
}
重启nginx或者刷新nginx配置文件即可。
测试:
例如A服务有一个接口为:http://100.101.102.104:8080/login/index
则测试https://test.com/login/index
看是否和http://100.101.102.104:8080/login/index访问一致。
windows系统配置Nginx使用SSL证书实现Https反向代理的更多相关文章
- Nginx下SSL证书设置和反向代理
上来就贴代码: server { listen ; server_name **.****.net; #填写绑定证书的域名 ssl on; ssl_certificate /opt/nginx-/co ...
- Nginx配置SSL证书实现https访问「浏览器未认证」
http 和 https 介绍 http:应用最广泛的一种网络协议,是一个B/S的request和response的标准,用于从www服务器传输超文本到本地浏览器的传输协议. https:以安全为目标 ...
- [转] Nginx 配置 SSL 证书 + 搭建 HTTPS 网站教程
一.HTTPS 是什么? 根据维基百科的解释: 超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol Secure)是超文本传输协议和SSL/TLS的组合 ...
- Nginx 配置 SSL 证书 + 搭建 HTTPS 网站教程
一.HTTPS 是什么? 根据维基百科的解释: 超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol Secure)是超文本传输协议和SSL/TLS的组合 ...
- nginx配置ssl证书实现https加密请求详解
原文链接:http://www.studyshare.cn/software/details/1175/0 一.加密方式 1.对称加密 所谓对称加密即:客户端使用一串固定的秘钥对传输内容进行加密,服务 ...
- Nginx配置SSL证书部署HTTPS网站(颁发证书)
一.Http与Https的区别HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高 ...
- Nginx配置SSL证书部署HTTPS网站
1.购买ssl证书 购买网站:沃通 2.上传证书到nginx服务器,然后进行解压. 解压后的的效果: [root@bubidev-ng3 nginx]# pwd/etc/nginx [root@bub ...
- centos7 nginx配置ssl证书实现https访问同时http访问
1,首先将你申请到的nginx 分类下的ssl证书上传到nginx的config下(可以新建一个目录叫ssl.) 2.修改nginx的config配置 server {listen 80;(监听80端 ...
- Nginx配置SSL证书部署HTTPS方法
1.申请域名,绑定服务器ip(我申请的是阿里云服务器,以下就此为例) 2.可以在阿里云上免费申请SSL证书(下载证书,后续会用到) 3.在服务器中配置证书 在服务器上安装Nginx 将下载好的证书上传 ...
随机推荐
- 【LeetCode】389. Find the Difference 解题报告(Java & Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 方法一:字典统计次数 方法二:异或 方法三:排序 日 ...
- 【LeetCode】862. Shortest Subarray with Sum at Least K 解题报告(C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 队列 日期 题目地址:https://leetcod ...
- 【LeetCode】949. Largest Time for Given Digits 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- The Monkey King(hdu5201)
The Monkey King Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- 1091. Tmutarakan Exams
1091. Tmutarakan Exams Time limit: 1.0 secondMemory limit: 64 MB University of New Tmutarakan trains ...
- Atcoder ABC137D:Summer Vacation(贪心)
D - Summer Vacation Time Limit: 2 sec / Memory Limit: 1024 MB Score : 400 points Problem Statement T ...
- fastapi(一)
废话不多说,直接上代码. 目录结构, 由于我也是刚开始学这个框架,只是了解了怎么注册蓝图,JWT的集成,数据库的集成,想了解更多,自行打开官方文档去详细阅读.fastapi官网文档链接 创建一个mai ...
- 离线版centos8环境部署迁移监控操作笔记
嗨咯,前两天总结记录了离线版centos8下docker的部署笔记,今天正好是2021年的最后一天,今天正好坐在本次出差回家的列车上,车上没有上面事做,索性不如把本次离线版centos8环境安装的其他 ...
- [C++]C++ STL库函数大全
#include <assert.h> //设定插入点 #include <ctype.h> //字符处理 #include <errno.h> //定义错误码 # ...
- JavaScript交互式网页设计 • 【第6章 初识jQuery】
全部章节 >>>> 本章目录 6.1 jQuery概述 6.1.1 初识 jQuery 6.1.2 jQuery 基本功能 6.1.3 搭建 jQuery 开发环境 6.1 ...