下载 OpenSSL
环境Windows、Linux、证书我在Windows 上生成了一个自签名证书。
https://slproweb.com/products/Win32OpenSSL.html
Win64 OpenSSL v3.3.1
EXE(这个)|
在“选择其他任务”页面上,选择OpenSSL 二进制文件(/bin) 目录。
接下来,将OpenSSL bin 目录设置为以下路径:
C:\\Program Files\\OpenSSL-Win64\\bin;
创建自签证书
生成私钥文件
openssl genrsa -des3 -outcodingce.com.cn.key 2048
删除密码。如果不删除它,启动Nginx 时将提示您输入密码。
openssl rsa -incodingce.com.cn.key -outcodingce.com.cn.key
创建请求证书
openssl req -new -keycodingce.com.cn.key -outcodingce.com.cn.csr
输入内容示例
国家名称(2个字母代码)[AU]:CN
州名(全称)[Some-State]:Beijing
地区名称(例如城市)[]: 北京
组织名称(例如公司)[Internet Widgits Pty Ltd]:CODINGCE
组织单位名称(例如部门)[]:DEV
通用名称(例如您服务器的FQDN 或您的姓名)[]:codingce.com.cn
邮箱地址[]:root@codingce.com.cn
请输入以下“附加”属性
随证书请求一起发送
挑战密码[]:
任意公司名称[]:CODINGCE
生成证书
openssl x509 -req -days 36500 -incodingce.com.cn.csr -signkeycodingce.com.cn.key -outcodingce.com.cn.crt -extfilecodingce.com.cn.ext
编码网.cn.ext
基本约束=CA:FALSE
keyUsage=不可否认性、数字签名、密钥加密
subjectAltName=@alt_names
[备用名称]
DNS.1=codingce.com.cn
概念
代理
在Java设计模式中,代理模式定义为:为对象提供一个代理对象,代理对象控制对原始对象的引用。
你可能不太理解这句话,但是我给你举一个真实的例子。比如你想买二手房,你可以自己找房子,但是需要花费太多的时间和精力。房屋质检、房屋交付等手续是必要的,但是当今社会,当你找到房子的时候,房子的价格可能已经上涨了,那该怎么办呢?最简单、最快的方法是找到二手房屋经纪人(为什么?还有很多其他房产)。除了为我寻找完美的家外,我还将后续的质检和交付工作委托给了经纪人。您所需要做的就是选择正确的一个。买你需要的房子就可以了。
简单来说,代理就是如果你想做某件事但又不想直接做,你可以找人帮你做。在这个例子中,一家经纪公司正在提供经纪服务,您要求经纪公司帮助您找房。
Nginx主要可以代理以下协议:其中最常用的是HTTP 代理服务器。
http/https(HTTP 服务器) ICMP/POP/IMAP(邮件服务器) RTMP(媒体服务器)
正向代理
如您所知,谷歌目前在中国无法访问。那么如何访问谷歌呢?我们想知道美国人是否也可以访问谷歌(废话,谷歌属于美国)。如果您可以将计算机的外部公共IP地址更改为美国IP地址,您将能够访问Google。太聪明了,VPN 就是这样创建的。访问Google时,首先连接VPN服务器,并将IP地址更改为美国IP地址,即可顺利访问。
这里的VPN是转发代理。转发代理服务器放置在客户端和服务器之间,为了从服务器获取数据,客户端向代理服务器发送请求,并将目标服务器返回的数据转发给代理服务器。客户。现在客户端需要配置转发代理设置。
反向代理
反向代理和正向代理的区别在于正向代理代理客户端,反向代理代理服务器。
反向代理。事实上,客户端访问代理不需要任何配置,只需要将请求发送到反向代理服务器,由反向代理服务器选择目标服务器来获取,因此它并不感知代理。当数据返回给客户端时,反向代理服务器和目标服务器作为一台服务器暴露给外界,而隐藏了实际服务器的IP地址。
Nginx反向代理
背景需求
在我的环境中,内网机器A无法访问公网,但是机器B可以访问公网。目标是机器A 通过机器B 的反向代理访问公共网络。
A 机器
修改机器A上的HOST文件,模拟解析机器B的内网域名(codingce.com.cn)。
C:\\Windows\\System32\\驱动程序\\等
192.168.56.101codingce.com.cn
B 机器
Nginx版本:nginx-1.25.4
Nginx 配置nginx.conf
#没有用户;
工作进程1;
事件{
工人连接1024;
}
http{
服务器名称散列桶大小64;
包括mime.types。
默认类型应用程序/八位字节流;
# 包含自定义配置文件
包括vhost/*.conf。
发送文件。
保活超时65;
#打开gzip。
服务器{
听80。
服务器名称本地主机;
位置/{
根html;
索引index.htmlindex.htm;
}
错误页面500 502 503 504 /50x.html;
位置=/50x.html {
根html;
}
}
}
codingce.conf 用于Nginx 配置
D:\\nginx-1.25.4\\nginx-1.25.4\\conf\\vhost
#codingce.com.cn
服务器{
443 监听SSL。
服务器名称codece.com.cn;
ssl_certificate \’D:\\\\Nginx\\\\nginx-1.25.4\\\\nginx-1.25.4\\\\conf\\\\vhost\\\\codingce.com.cn.crt\’;
ssl_certificate_key \’D:\\\\Nginx\\\\nginx-1.25.4\\\\nginx-1.25.4\\\\conf\\\\vhost\\\\codingce.com.cn.key\’;
ssl_协议TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:aNULL:MD5;
位置/{
proxy_pass https://codingce.com.cn;
proxy_ssl_verify 关闭;
proxy_ssl_server_name 已打开。
proxy_connect_timeout 120 秒;
proxy_send_timeout 120 秒;
proxy_read_timeout 120 秒;
proxy_set_header hostcodingce.com.cn;
proxy_set_header X-真实IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Linux版本
服务器{
443 监听SSL。
服务器名称codece.com.cn;
ssl_certificate /path/to/codingce.com.cn.crt;
ssl_certificate_key /path/to/codingce.com.cn.key;
ssl_协议TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:aNULL:MD5;
位置/{
proxy_pass https://codingce.com.cn;
proxy_ssl_verify 关闭;
proxy_ssl_server_name 已打开。
proxy_connect_timeout 120 秒;
proxy_send_timeout 120 秒;
proxy_read_timeout 120 秒;
proxy_set_header hostcodingce.com.cn;
proxy_set_header X-真实IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
# 启动nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
重启
/usr/local/nginx/sbin/nginx -s 重新加载
证书:
自签名证书浏览器不具有安全意识,因此您必须手动添加受信任的根证书颁发机构。如果不添加,上线时会遇到证书失效的问题。
访问机器控制台
#[Nginx]以上有关Windows生成的ssl证书和Nginx反向代理HTTPS相关内容源网络的信息仅供参考。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/93933.html