Nginx配置HTTPS协议

HTTPS 全称

HTTPS (全称:Hypertext Transfer Protocol Secure),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。

HTTPS有特点

  • 内容加密:采用混合加密技术,中间者无法直接查看明文内容
  • 验证身份:通过证书认证客户端访问的是自己的服务器
  • 保护数据完整性:防止传输的内容被中间人冒充或者篡改

 Nginx配置

[root@Nginx ~]# mkdir -p /usr/local/nginx/conf/ssl
[root@Nginx ~]# cp server.crt server.key /usr/local/nginx/conf/ssl/
[root@Nginx ~]# vim /usr/local/nginx/conf/nginx.conf
server {
    listen 443;															# 监听端口
    ssl on;																# 开启 SSL
    ssl_certificate ssl/server.crt;										# PS:我这里是相对路径. 你们可以使用绝对路径
    ssl_certificate_key ssl/server.key;									# 系统会在 /usr/local/nginx/conf/ 目录中寻找
    server_name  www.cuplayer.com;											# 证书对应的域名
    ...
}
[root@Nginx ~]# nginx -s reload											# 重启 Nginx 服务

将 80 端口和 443 端口区分开: 

[root@Nginx ~]# vim /usr/local/nginx/conf/nginx.conf
server {
    listen 80;
    server_name  www.cuplayer.com;
    rewrite ^(.*)$ https://$host$1 permanent;
    ...
}
server {
    listen 443;
    ssl on;
    ssl_certificate ssl/server.crt;
    ssl_certificate_key ssl/server.key;
    server_name  www.cuplayer.com;
    ...
}
[root@localhost ~]# nginx -s reload

  我的热门文章推荐

<think>我们想要配置NginxHTTPS请求反向代理到后端的HTTP服务。这通常用于后端服务不支持HTTPS,而Nginx作为SSL终端的情况。 配置思路: 1. 监听443端口(HTTPS),配置SSL证书。 2. 将接收到的HTTPS请求通过proxy_pass转发到后端的HTTP服务。 3. 同时配置HTTP到HTTPS的重定向(可选,如果不需要可以省略)。 注意:用户要求将https转为http,即客户端到NginxHTTPSNginx到后端是HTTP。 配置示例: 假设后端服务运行在http://localhost:8080 </think>以下是将 HTTPS 请求转换为 HTTP 协议并转发到后端的 Nginx 配置指南: ### Nginx HTTPS 转 HTTP 配置 ```nginx server { listen 443 ssl; # 监听HTTPS端口 server_name yourdomain.com; # SSL证书配置(必须) ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; # 协议转换核心配置 location / { proxy_pass http://backend_server; # 注意这里是http协议 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 可选:添加安全头 add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; } } # 可选:HTTP自动跳转HTTPS(保持全站HTTPS) server { listen 80; server_name yourdomain.com; return 301 https://$host$request_uri; } ``` ### 关键配置说明 1. **协议转换核心**:`proxy_pass http://...` 将 HTTPS 请求转发到 HTTP 后端 2. **头部传递**: - `X-Forwarded-Proto $scheme`:告知后端原始协议HTTPS - `Host $host`:保持原始主机头 3. **安全增强**(可选): ```nginx proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_http_version 1.1; ``` ### 典型应用场景 1. 前端 HTTPS 加密访问 → Nginx 解密 → HTTP 后端服务 2. 云服务负载均衡器 HTTPS 卸载 → HTTP 内部服务器 3. 安全网关处理 SSL 加解密 → 非加密应用服务器 ### 验证步骤 1. 测试配置: ```bash sudo nginx -t ``` 2. 重载配置: ```bash sudo nginx -s reload ``` 3. 验证请求(查看后端收到的协议头): ```bash curl -k https://yourdomain.com -H "X-Forwarded-Proto: https" ``` ### 注意事项 1. **安全警告**:后端 HTTP 通信未加密,仅限内网安全环境使用 2. **混合内容**:确保后端返回的资源不包含 `http://` 硬编码地址 3. **证书管理**:定期更新 SSL 证书(推荐 Let's Encrypt)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值