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】623. Add One Row to Tree 解题报告(Python)
[LeetCode]623. Add One Row to Tree 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://leetcode.com/problem ...
- 【LeetCode】60. Permutation Sequence 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- python极简教程01:基础变量
测试奇谭,BUG不见. 其实很久之前,就有身边的同事或者网友让我分享一些关于python编程语言的教程,他们同大多数自学编程语言的人一样,无外乎遇到以下这些问题: 网络上的资料过多且良莠不全,不知道如 ...
- 使用 Android Studio 开发工具创建一个 Android 应用程序,并在 Genymotion 模拟器上运行
需求说明: 使用 Android Studio 开发工具创建一个 Android 应用程序,并在 Genymotion 模拟器上运行 实现步骤: 打开 Android Studio,创建一个 Andr ...
- Spring第一个程序
目录 1.利用Maven导入jar包 2.编写一个实体类 3.编写Spring文件 4.测试 1.利用Maven导入jar包 <dependency> <groupId>org ...
- Oracle:使用PL-SQL登录时报ORA-12541:无监听程序的解决办法
背景: 在自己公司安装的Oracle,当时Oracle的监听地址都是写的公司的地址 后来由于项目需要,办公地点转移到了客户处, 大概有半年没有以sys用户登录数据库了. 最近在上下班途中学习Djang ...
- springboot 开启事务回滚
在数据库操作时如果发生异常,回滚的方法 在方法上添加注解@Transactional,作用域是方法级的 参考资料: https://www.cnblogs.com/c2g5201314/p/13163 ...
- tomcat 可部署4种方式
1.在conf\Catalina\localhost 目录下添加.xml配置文件 2.修改server.xml文件进行部署 3.将项目拷贝到webapps目录下 4.启动tomcat后,打开tomca ...
- Centos安装rrdtool的yum源
由于centos的标准组件中是不带rrdtool的,因此我们需要添加一个dag的yum源,以安装rrdtool. 修改/etc/yum.repos.d/CentOS-Base.repo, #vi /e ...
- Windows 10 如何在当前位置打开 CMD 命令窗口?
方法一 Win + R 键召唤出运行窗口,然后输入 "CMD" 打开命令提示符. 使用 cd 命令更改当前命令提示符的工作环境. 注释 cd/ - 退到当前所在盘符 cd.. - ...