• 首页

  • 写作

  • 文章归档

  • 照片

  • 友情链接

  • 旅行

  • 读书

  • 日志

  • 随记

  • 人文历史

  • linux

  • 前端
b l o g
b l o g

admin

lzp

01月
12
linux
nginx

nginx 代理,证书的关系?nginx 什么时候会执行 ssl 证书验证?

发表于 2025-01-12 • 字数统计 2974 • 被 18 人看爆

##2024/8/15 21:56:24:

ngix 代理,证书的关系?nginx 什么时候会执行 ssl 证书验证?

发送请求:https://abc.qyzhizi.cn:8080/
abc.qyzhizi.cn 所在的机器 通过 frp 端口转发,发送到 另一台机器 A的 8080 端口
机器 A上的 frp 配置如下:

[common]
server_addr = ****
authentication_method = token
token = *****
server_port = 7000

[ssh-gk]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 20025

[halo-gk]
type = tcp
local_ip = 127.0.0.1
local_port = 8080
remote_port = 8080

机器 A 上的 nginx 在 8080 端口上监听 https 请求,配置如下:

# halo blog
server {
    listen  8080  ssl;
    server_name  abc.qyzhizi.cn;

    ssl_certificate      /usr/local/nginx/conf/abc.qyzhizi.cn_bundle.crt;
    ssl_certificate_key  /usr/local/nginx/conf/abc.qyzhizi.cn.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;
    client_max_body_size 100m;
    client_body_buffer_size 20m;

    location / {
        proxy_pass http://localhost:8091;
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

http://localhost:8091 是本地的 halo docker 服务, nginx 会将请求转到 本地的 docker 服务
ssl 证书验证发生在 nginx 上面,当客户端发送 https 协议的请求到达 abc.qyzhizi.cn 所在的机器,然后又被 frp 转发给 机器 A, 机器 A 的 nginx 会进行响应

ai 的梳理:
@@ 请求流程概述

  1. 客户端请求:客户端发送一个HTTPS请求到 https://abc.qyzhizi.cn:8080.

  2. FRP端口转发:

    • 请求到达托管abc.qyzhizi.cn的机器。
    • FRP根据FRP设置将请求转发到机器A的8080端口。
  3. Nginx处理:

    • 在机器A上,Nginx监听8080端口上的传入HTTPS请求。
    • Nginx配置指定了SSL证书,使其能够处理SSL终止。
    • Nginx然后将请求代理到运行在http://localhost:8091上的本地Halo Docker服务。

@@ 设置的正确性

  • SSL终止:SSL终止发生在机器A上的Nginx级别。这意味着Nginx处理SSL解密,允许后端服务(Halo Docker)通过HTTP进行通信,而无需管理SSL。
  • FRP配置:FRP配置似乎是正确的,因为它将流量从指定的远程端口(8080)转发到Nginx正在侦听的本地端口。
  • Nginx配置:Nginx配置正确地设置了带有指定证书的SSL,并将请求代理到Halo服务。

@@ 其他注意事项

  • 防火墙和安全组:确保在两台机器上的防火墙设置中打开必要的端口(FRP为7000,Nginx为8080)并可访问。
  • 令牌安全:FRP配置中使用的令牌应保持安全,以防止未经授权的访问。
  • 健康检查:考虑为Halo服务实现健康检查,以确保Nginx能够有效地路由流量。
  • 日志记录:在Nginx中启用日志记录,以监控传入的请求和任何潜在的错误。

总的来说,所描述的体系结构和配置对于通过FRP和Nginx处理到Docker服务的HTTPS请求是正确的。

nginx 什么时候会执行 ssl 证书验证?

Nginx执行SSL证书验证的时机主要是在处理HTTPS请求时。具体来说,以下是Nginx如何以及何时执行SSL证书验证的详细说明:

@@ 何时执行SSL证书验证

  1. 接收HTTPS请求:
    当客户端通过HTTPS(即使用SSL/TLS协议)向Nginx服务器发送请求时,Nginx会首先监听443端口并等待这些请求。

  2. SSL握手过程:
    在接收到HTTPS请求后,Nginx会启动SSL握手过程。这一过程包括:

    • 客户端发送一个请求,要求建立SSL连接。
    • Nginx服务器响应并发送其SSL证书给客户端。
    • 客户端验证Nginx发送的证书是否有效,包括检查证书的签名、有效期、是否被撤销等。
  3. 证书验证:
    客户端在验证证书时,会检查以下几个方面:

    • 证书链:确保Nginx的证书是由受信任的证书颁发机构(CA)签发的。
    • 域名匹配:证书中的域名是否与请求的域名匹配。
    • 有效性:证书是否在有效期内,且未被撤销。
  4. 建立安全连接:
    如果证书验证通过,客户端和Nginx之间将建立安全的SSL/TLS连接,之后的通信将会被加密。

@@ 配置SSL证书的步骤

在Nginx中配置SSL证书通常包括以下步骤:

  1. 获取证书和私钥:从受信任的CA获取SSL证书和私钥文件,通常为.pem和.key格式。

  2. 配置Nginx:在Nginx的配置文件中添加SSL相关的配置,例如:

    server {
        listen 443 ssl;
        server_name your_domain.com;
    
        ssl_certificate /path/to/certificate.pem;
        ssl_certificate_key /path/to/private.key;
    
        location / {
            # 其他配置
        }
    }
    
  3. 重启Nginx:修改配置后,重启Nginx以使更改生效。

  4. 验证配置:可以通过访问HTTPS地址,确保浏览器显示SSL锁图标,并检查证书详细信息以确认SSL配置正确。

通过这些步骤,Nginx能够在处理HTTPS请求时有效地执行SSL证书验证,确保数据传输的安全性和完整性[1][4][5]。

Citations:
[1] https://www.hncloud.com/supports/6684.html
[2] http://www.008ct.top/blog/2023/12/08/nginx%E9%85%8D%E7%BD%AE%E8%87%AA%E5%BB%BASSL%E8%AF%81%E4%B9%A6/
[3] https://www.cnblogs.com/GGYS/p/17424603.html
[4] https://blog.csdn.net/a924382407/article/details/137585495
[5] https://help.aliyun.com/zh/ssl-certificate/user-guide/install-ssl-certificates-on-nginx-servers-or-tengine-servers

分享到:
Comparison of AI hardware common concepts overview GPUs
next.js login github and deploy it to vercel
  • 文章目录
  • 站点概览
admin

! lzp

hello

Github Twitter QQ Email Telegram RSS
看爆 Top5
  • 历史与人文 视频链接 229次看爆
  • 2022日志随笔 188次看爆
  • 我的青海湖骑行 187次看爆
  • 读书随笔 135次看爆
  • rs2 设置教程 122次看爆

站点已萌萌哒运行 00 天 00 小时 00 分 00 秒(●'◡'●)ノ♥

Copyright © 2025 admin

由 Halo 强力驱动 · Theme by Sagiri · 站点地图