当前位置: 首页 > news >正文

Nginx:支持 HTTPS

文章目录

    • Nginx 开启 ssl 以支持 HTTPS
      • 1 生成本地证书
      • 2 开启 ssl 以支持 HTTPS
      • 3 将 https 的请求转发给 http
    • 最终的 nginx.conf 如下

Nginx 开启 ssl 以支持 HTTPS

[!IMPORTANT]

在下文中,将采用如下定义。

HTTP端口: 80

HTTPS端口: 443

服务地址: www.0ll1.com,也可以是 IP

1 生成本地证书

  1. 生成一个 RSA 私钥:server.key

    openssl genrsa -out server.key 2048
    
  2. 生成一个自签名的 X.509 证书:server.crt

    openssl req -new -x509 -days 8760 -key server.key -out server.crt -subj "/C=CN/O=Institute of Information Engineering, CAS/CN=www.0ll1.com"
    

2 开启 ssl 以支持 HTTPS

server {listen 443 ssl;server_name www.0ll1.com;ssl_certificate /usr/local/nginx/cert/server.crt;ssl_certificate_key /usr/local/nginx/cert/server.key;ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;ssl_prefer_server_ciphers on;
}

3 将 https 的请求转发给 http

server {location / {proxy_set_header Host $host;proxy_redirect off;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_connect_timeout 60;proxy_read_timeout 600;proxy_send_timeout 600;proxy_pass http://www.0ll1.com:80;}
}

[!NOTE]

只需要将 proxy_pass 修改为 http 服务的 url 即可。

最终的 nginx.conf 如下

server {listen 443 ssl;server_name www.0ll1.com;ssl_certificate /usr/local/nginx/cert/server.crt;ssl_certificate_key /usr/local/nginx/cert/server.key;ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;ssl_prefer_server_ciphers on;location / {proxy_set_header Host $host;proxy_redirect off;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_connect_timeout 60;proxy_read_timeout 600;proxy_send_timeout 600;proxy_pass http://www.0ll1.com:80;}
}

相关文章:

  • 考研系列-计算机网络-第五章、传输层
  • 二叉树层序遍历技术解析与面试指南
  • 状态管理最佳实践:Riverpod响应式编程
  • Windows 同步-互锁变量访问
  • 【我的创作纪念日】 --- 与CSDN走过的第365天
  • Nginx​中间件的解析
  • 厚铜PCB生产如何保证铜平衡?
  • 数据库对象与权限管理-Oracle数据字典详解
  • vim 命令复习
  • 为TA开发人员介绍具有最新改进的Kinibi-610a
  • js实现2D图片堆叠在一起呈现为3D效果,类似大楼楼层的效果,点击每个楼层不会被其他楼层遮挡
  • 稍早版本的ICG3000使用VXLAN建立L2 VPN
  • [PTA]2025 CCCC-GPLT天梯赛 胖达的山头
  • 『不废话』之Python管理工具uv快速入门
  • uv包管理器如何安装依赖?
  • 直播分享|TinyVue 多端实战与轻量图标库分享
  • 多头注意力(Multi‑Head Attention)
  • A2A + MCP:构建实用人工智能系统的超强组合
  • rlm.exe是什么
  • vue3:十一、主页面布局(修改左侧导航条的样式)
  • 扎克伯格怕“错过风口”?Meta AI数字伴侣被允许与未成年人讨论不当话题
  • 全球前瞻|王毅赴巴西出席金砖外长会,加拿大迎来“几十年来最重要大选”
  • 银川市市长信箱被指已读乱回,官方回应
  • 最高法专门规范涉企案件审执工作:从源头防止趋利性执法司法
  • 一季度规模以上工业企业利润由降转增,国家统计局解读
  • 泰山景区管委会:未经审核同意不得擅自举办竞速类登山活动