Https SSL证书配置

Https 自定义SSL证书配置 -- 通过Nginx代理

properties 复制代码
前提:
1. 安装 openSSL,注册环境变量;(生成证书用)
2. 安装 Nginx 服务;

ps: 建议在新文件夹下运行openSSL,生成的相关文件容易找到;

一. 生成SSL证书(模拟CA机构方式)

1. 生成 CA 的私钥ca.key和自签名证书ca.crt:
shell 复制代码
openssl req -x509 -nodes -days 365000 -newkey rsa:2048 -subj "/C=CN/ST=guangdong/L=shenzhen/O=DAS" -keyout ca.key -out ca.crt -reqexts v3_req -extensions v3_ca
2. 生成服务器证书请求文件server.key:
shell 复制代码
openssl genrsa -out server.key 2048
3. 生成服务器证书请求文件 server.csr:
shell 复制代码
openssl req -new -key server.key -subj "/C=CN/ST=guangdong/L=shenzhen/O=DAS/CN=www.example.com" -sha256 -out server.csr
4. 新建 private.ext 文件(让证书可以关联多个受信任域名或者IP)
复制代码
[ req ]
default_bits        = 2048
distinguished_name  = req_distinguished_name
req_extensions      = san
extensions          = san

[ req_distinguished_name ]
countryName         = CN
stateOrProvinceName = Definesys
localityName        = Definesys
organizationName    = Definesys

[SAN]
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
#DNS.x: 绑定域名
#DNS.1 = www.example.com
#DNS.2 = www.example.net
#IP.x: 绑定IP
IP.1 = 192.168.2.5
#IP.2 = 192.168.2.4
5. 生成服务器证书文件 server.crt:
shell 复制代码
openssl x509 -req -days 365000 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -sha256 -out server.crt -extfile private.ext -extensions SAN
PS: 验证生成的证书(:
shell 复制代码
# 这个命令会显示证书的详细信息,包括颁发者、有效期、公钥等
openssl x509 -in server.crt -text -noout


二. 修改 Nginx 配置 SSL 证书

1. 修改./nginx/conf/nginx.conf 文件
properties 复制代码
http{
	...
	
	#======这里实现通过 https://ip:9988/xxx -> 访问内部http://ip:9999/xxx 地址======
    server {
        listen       9988 ssl;#https 对外开放端口
        server_name  localhost;

		#ssl配置
        ssl_certificate      D:\openSSL\server.crt;# 证书文件路径
        ssl_certificate_key  D:\openSSL\server.key;# 私钥文件路径

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m; # ssl会话信息保留时间

        ssl_ciphers  HIGH:!aNULL:!MD5;# 指定加密套件
	    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 仅启用安全的 TLS 版本
        ssl_prefer_server_ciphers  on;# 优先使用服务器端的加密套件

		#重定向所有9988端口请求
        location / {
			proxy_pass http://192.168.2.5:9999;
			proxy_redirect http:// https://;#防止重定向变回http
			proxy_set_header Referer $http_referer;##++
            proxy_set_header Host $host:9988;#防止重定向端口丢失
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}
相关推荐
Trouvaille ~1 小时前
TCP Socket编程实战(三):线程池优化与TCP编程最佳实践
linux·运维·服务器·网络·c++·网络协议·tcp/ip
JoySSLLian3 小时前
手把手教你安装免费SSL证书(附宝塔/Nginx/Apache配置教程)
网络·人工智能·网络协议·tcp/ip·nginx·apache·ssl
猫头虎3 小时前
如何解决 OpenClaw “Pairing required” 报错:两种官方解决方案详解
网络·windows·网络协议·macos·智能路由器·pip·scipy
云姜.4 小时前
网络协议----OSI七层网络协议 和 TCP/IP四层(五层)网络协议
网络·网络协议
郝学胜-神的一滴5 小时前
深入解析C/S模型下的TCP通信流程:从握手到挥手的技术之旅
linux·服务器·c语言·网络·网络协议·tcp/ip
“αβ”5 小时前
数据链路层协议 -- 以太网协议与ARP协议
服务器·网络·网络协议·以太网·数据链路层·arp·mac地址
青春给了代码6 小时前
基于WebSocket实现在线语音(实时+保存)+文字双向传输完整实现
网络·websocket·网络协议
北京耐用通信6 小时前
破解AGV多协议互联难题:耐达讯自动化Profinet转Devicenet网关如何实现高效协同
人工智能·科技·物联网·网络协议·自动化·信息与通信
win x7 小时前
深入理解HTTPS协议加密流程
网络协议·http·https
仙俊红7 小时前
从 Filter / Interceptor 到 HTTPS
网络协议·http·https