Search: #TLS

  1. 自建节点证书相关说明更新▎覆盖用于验证证书的域名,但不会改变 SNI免流等场景下, SNI 改为混淆, 不关验证, 仍然验证证书的域名 Xray: verifyPeerCertByName, URI 上叫 vcn mihomo: name-cert-verify Surge: server-cert-verify-name Sub-Store 中可按上述输入写字段, 或使用脚本操作 $server['name-cert-verify'] = 'b.com' 原消息 服务器合集 合集 恰饭推荐 群组 联系推广 #VPS #服务器 #节点 #自建 #证书 #SNI #hostname #TLS #SHA256 #自签 #指纹 #SSL

    自建节点证书相关说明更新

    覆盖用于验证证书的域名,但不会改变 SNI

    免流等场景下, SNI 改为混淆, 不关验证, 仍然验证证书的域名

    Xray: verifyPeerCertByName, URI 上叫 vcn
    mihomo: name-cert-verify
    Surge: server-cert-verify-name

    Sub-Store 中可按上述输入写字段, 或使用脚本操作 $server['name-cert-verify'] = 'b.com'

    原消息

    服务器合集 合集 恰饭推荐 群组 联系推广

    #VPS #服务器 #节点 #自建 #证书 #SNI #hostname #TLS #SHA256 #自签 #指纹 #SSL

    • ❤️1
  2. Sub-Store 自动设置服务端证书 SHA-256 指纹仅 Node.js 版支持这里示范的是直接从服务端取, 支持所有目标(包括 sing-box 的 certificate_public_key_sha256) 原消息相关: 自建节点证书相关说明 服务器合集 Sub-Store 合集 合集 恰饭推荐 群组 联系推广 #节点 #证书 #SNI #TLS #SHA256 #指纹 #SSL #sing-box #mihomo #surge

    Sub-Store 自动设置服务端证书 SHA-256 指纹

    仅 Node.js 版支持
    这里示范的是直接从服务端取, 支持所有目标(包括 sing-box 的 certificate_public_key_sha256)

    原消息

    相关: 自建节点证书相关说明

    服务器合集 Sub-Store 合集 合集 恰饭推荐 群组 联系推广

    #节点 #证书 #SNI #TLS #SHA256 #指纹 #SSL #sing-box #mihomo #surge

  3. Caddy 配置保留带下划线的请求头如果使用 Nginx 反代 Sub2API 需要保留带下划线的请求头(如 session_id、conversation_id、thread_id),否则多账号环境下的粘性会话(Sticky Session)会失效

    Caddy 配置保留带下划线的请求头

    如果使用 Nginx 反代 Sub2API 需要保留带下划线的请求头(如 session_idconversation_idthread_id),否则多账号环境下的粘性会话(Sticky Session)会失效。
    Nginx
    http {
        underscores_in_headers on;
    }

    Caddy(需最新 master)
    xcaddy build master --output /usr/bin/caddy

    servers :443 {
        expected_underscore_headers session_id conversation_id thread_id
    }


    Sub2API:https://github.com/Wei-Shaw/sub2api/issues/2784
    Caddy:https://github.com/caddyserver/caddy/issues/7808

    服务器合集 合集 群组 恰饭 联系推广

    #redis #caddy #服务器 #证书 #tls #数据库

    • ❤️1
  4. Caddy 使用 Redis 共享 storage共享 storage 的实例会自动共享资源并协调证书管理▎mise官方文档curl

    Caddy 使用 Redis 共享 storage

    共享 storage 的实例会自动共享资源并协调证书管理

    ▎mise

    官方文档

    curl https://mise.run | sh

    echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc

    fish:
    echo '~/.local/bin/mise activate fish | source' >> ~/.config/fish/config.fish

    重启你的 shell 会话, 安装 go
    mise use -g go


    ▎caddy

    caddy 安装: 官方文档

    xcaddy 安装:
    go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest

    pberkel/caddy-storage-redis 安装:
    补充一点 如果想用最新的特性 可以用 xcaddy build master 但是可能也有新鲜的 bug 🐶
    xcaddy build latest --with github.com/pberkel/caddy-storage-redis --output /usr/bin/caddy

    pberkel/caddy-storage-redis 文档

    注册一个 upstash.com 的免费 Redis 或准备一个自己的

    caddy 配置(省略其他的部分)
    /etc/caddy/Caddyfile

    encryption_key 开启加密
    compression 开启压缩
    {
    storage redis {
    address xxxxxxxxxx.upstash.io:6379
    username default
    password xxxxxxxxxx
    encryption_key MwhAhPKhr687n94Jd9TiPRcwHaVReLsv
    compression true
    tls_enabled true
    }
    }

    ▎相关阅读

    从 0 搭建一个 AnyTLS 节点(Caddy 分流, 自动维护证书)

    服务器合集 合集 群组 恰饭 联系推广

    #redis #caddy #服务器 #证书 #tls #数据库

    • ❤️3
  5. 鸣鹤 (MingHe) 最小化安全 SIP 语音通信服务器 — 纯 Rust 编写来自作者自荐 @KtieMark57替代语音电话的自建方案,没有诈骗和推销

    鸣鹤 (MingHe) 最小化安全 SIP 语音通信服务器 — 纯 Rust 编写

    来自作者自荐 @KtieMark57

    替代语音电话的自建方案,没有诈骗和推销。

    https://github.com/619dev/minghe

    🔒 TLS 信令加密 — SIP over TLS (SIPS),端口 5061 ,支持 TLS 1.2/1.3
    🎵 SRTP 媒体加密 — AES_CM_128_HMAC_SHA1_80 ,SDES 密钥交换
    🔑 SIP Digest 认证 — MD5 摘要认证,支持默认密码和分机独立密码
    📡 RTP 媒体中继 — 服务器侧透明中继,地址学习,隐藏内部拓扑
    📱 内部分机 — 1000–2000 号段(可配置),支持 INVITE/BYE/CANCEL/ACK
    🌐 IP 证书 — 无需域名,支持 IP 地址直接签发 TLS 证书
    🔄 证书自动续期 — 自签名证书到期前 30 天自动重新生成,热重载不中断服务
    🐳 Docker 就绪 — 多架构镜像 (amd64/arm64),一键 compose 部署
    🦀 纯 Rust — 异步高性能 (tokio),内存安全,无 GC

    推荐客户端:
    iOS / Android:Bria Mobile app
    桌面电话机:方位 Linkvil W610W / W620W

    合集 群组 恰饭 联系推广

    #SIP #Rust #Docker #TLS #SRTP #VoIP #Linux

    • ❤️3
  6. Tunnl.gg: 轻量化 SSH 隧道服务,单命令即可暴露本地应用 公开的服务是

    Tunnl.gg: 轻量化 SSH 隧道服务,单命令即可暴露本地应用

    公开的服务是 https://tunnl.gg

    • 记忆式子域名,每次连接自动生成唯一 URL
    • 自动通过 Let’s Encrypt 颁发 HTTPS,零配置即启用 SSL
    • 完整的速率限制与滥用防护,保障服务安全

    https://github.com/klipitkas/tunnl.gg

    #隧道 #SSH #自动SSL #无配置 #GitHub #TLS #WebSocket

    • ❤️4
  7. 从 0 搭建一个 Shadowsocks 2022 + ShadowTLS V3 节点1. Shadowsocks 2022自己搭, 假设 TCP 和 UDP 都监听的是 0.0.0.0:12446, 加密 2022-blake3-aes-256-gcm, 密码 SaAj4IC+cHEyWoCaUXeNBE+A8DcqKRsOELe4FOuuNJE=2. ShadowTLSx64:curl -L

    从 0 搭建一个 Shadowsocks 2022 + ShadowTLS V3 节点

    1. Shadowsocks 2022

    自己搭, 假设 TCP 和 UDP 都监听的是 0.0.0.0:12446, 加密 2022-blake3-aes-256-gcm, 密码 SaAj4IC+cHEyWoCaUXeNBE+A8DcqKRsOELe4FOuuNJE=

    2. ShadowTLS

    x64:
    curl -L https://github.com/ihciah/shadow-tls/releases/download/v0.2.25/shadow-tls-x86_64-unknown-linux-musl -o /usr/local/bin/shadow-tls; chmod a+x /usr/local/bin/shadow-tls


    arm:
    curl -L https://github.com/ihciah/shadow-tls/releases/download/v0.2.25/shadow-tls-arm-unknown-linux-musleabi -o /usr/local/bin/shadow-tls; chmod a+x /usr/local/bin/shadow-tls


    编辑 /etc/systemd/system/shadow-tls.service 抄了下 snell 的服务 微调了下

    [Unit]
    Description=Shadow-TLS Server Service
    After=network-online.target
    Wants=network-online.target systemd-networkd-wait-online.service
    [Service]
    LimitNOFILE=32767 
    Type=simple
    User=root
    Restart=on-failure
    RestartSec=5s
    ExecStartPre=/bin/sh -c ulimit -n 51200
    ExecStart=shadow-tls --fastopen --v3 --strict server --wildcard-sni=authed --listen [::]:443 --server 127.0.0.1:12446 --tls p11.douyinpic.com:443 --password MVlWnwyr9vEOK8hL 
    [Install]
    WantedBy=multi-user.target

    这里的 12446 是 TCP 端口. 如果你的 SS TCP 监听的是其他端口, 这里自己改

    3. 重载服务&启动

    systemctl daemon-reload
    systemctl enable --now shadow-tls


    4. 查看服务&日志

    systemctl status shadow-tls
    journalctl -f  -o cat -n 100 -u shadow-tls


    5. 使用

    vps [ss2022][shadow-tls-v3] = ss, 服务器地址, 443, encrypt-method=2022-blake3-aes-256-gcm, password=SaAj4IC+cHEyWoCaUXeNBE+A8DcqKRsOELe4FOuuNJE=, shadow-tls-password=MVlWnwyr9vEOK8hL, shadow-tls-sni=p11.douyinpic.com, shadow-tls-version=3, udp-relay=true, udp-port=12446

    这里的 12446 是 UDP 端口. 如果你的 SS UDP 监听的是其他端口, 这里自己改

    Surge, Loon, Egern 支持 udp-port

    shadowsocks 协议支持配置 udp-port 参数,用于单独指定 UDP 模式的服务端端口号,可在使用 ShadowTLS 时使用原端口号。


    详见 https://t.me/SurgeTestFlightFeed/259

    重新解释一下:

    tcp 流量 -> shadow-tls 监听公网 443 -> ss 监听的 tcp 端口(不需要监听公网)
    udp 流量 -> udp-port(ss 监听的 udp 端口 需要监听公网)

    因为我们在 Shadow TLS 开启了 --wildcard-sni=authed 所以 可以在客户端改 shadow-tls-sni 不用跟服务端设置的相同

    可能降低了安全性(?) 但是方便

    p11.douyinpic.com 是混淆

    📃 相关内容

    从 0 搭建一个 Snell + ShadowTLS V3 免流节点(当然过墙也是杠杠的) mihomo 服务端版

    从 0 搭建一个 Snell + ShadowTLS V3 免流节点(当然过墙也是杠杠的) 独立版

    TLS 1.3 相关的文档 👆🏻上面的配置里开了 --strict 具体可以看这个文档

    ⚠️ 有些人可能需要看这个:shadow-tls CPU 占用高

    免流合集 服务器合集 频道资源合集 恰饭推荐 群组

    #SS #Shadowsocks #SS2022 #Shadowsocks2022 #TLS #ShadowTLS #Shadow-TLS #节点 #服务器 #UDP

    • ❤️25
    • 👍3
  8. 从 0 搭建一个 Snell + ShadowTLS V3 免流节点之前发的 独立版(官方 Snell + ShadowTLS)本次示范的是 mihomo 版1. 服务端mihomo 官方文档中的 创建运行服务配置示例proxies:

    从 0 搭建一个 Snell + ShadowTLS V3 免流节点

    之前发的 独立版(官方 Snell + ShadowTLS)

    本次示范的是 mihomo 版

    1. 服务端

    mihomo 官方文档中的 创建运行服务

    配置示例

    proxies:
      - name: "direct"
        type: direct
        udp: true
        ip-version: ipv4-prefer
    listeners:
      - name: snell-in
        type: snell
        port: 443
        listen: "::"
        psk: vgyCqVVztA9fNVYB4ZfW
        proxy: direct
        version: 4
        udp: true
        shadow-tls:
          enable: true
          version: 3
          users:
            - name: user
              password: zdYFc1fSSi6oBZeon84ojA
          handshake:
            dest: p11.douyinpic.com:443


    2. 客户端

    1 [snell][shadow-tls]=snell,xxxx,443,version=4,psk="vgyCqVVztA9fNVYB4ZfW",udp-relay=true,shadow-tls-password="zdYFc1fSSi6oBZeon84ojA",shadow-tls-sni=p11.douyinpic.com,shadow-tls-version=3,reuse=true


    服务器合集 合集 群组 恰饭 联系推广

    #Surge #免流 #混淆 #TLS #Snell #ShadowTLS #Shadow-TLS #节点 #服务器

    • 💯3
  9. 从 0 搭建一个 Snell + ShadowTLS V3 免流节点(当然过墙也是杠杠的)🆕 mihomo 服务端版1. 安装 snell v4(随便找的脚本, 自行搭建)wget -O snell.sh --no-check-certificate

    从 0 搭建一个 Snell + ShadowTLS V3 免流节点(当然过墙也是杠杠的)

    🆕 mihomo 服务端版

    1. 安装 snell v4(随便找的脚本, 自行搭建)

    wget -O snell.sh --no-check-certificate https://git.io/Snell.sh && chmod +x snell.sh && ./snell.sh


    可只监听 127.0.0.1, 假设你监听的端口为 63000, 密码为 oKObPL9BuHcU2c5c 不开 obfs

    /etc/snell/config.conf

    [snell-server]
    listen = 127.0.0.1:63000
    ipv6 = true
    psk = oKObPL9BuHcU2c5c
    tfo = true
    version = 4


    systemctl restart snell-server
    systemctl status snell-server


    2. 安装 ShadowTLS

    x64:
    curl -L https://github.com/ihciah/shadow-tls/releases/download/v0.2.25/shadow-tls-x86_64-unknown-linux-musl -o /usr/local/bin/shadow-tls; chmod a+x /usr/local/bin/shadow-tls


    arm:
    curl -L https://github.com/ihciah/shadow-tls/releases/download/v0.2.25/shadow-tls-arm-unknown-linux-musleabi -o /usr/local/bin/shadow-tls; chmod a+x /usr/local/bin/shadow-tls


    编辑 /etc/systemd/system/shadow-tls.service 抄了下 snell 的服务 微调了下

    [Unit]
    Description=Shadow-TLS Server Service
    After=network-online.target
    Wants=network-online.target systemd-networkd-wait-online.service
    [Service]
    LimitNOFILE=32767 
    Type=simple
    User=root
    Restart=on-failure
    RestartSec=5s
    ExecStartPre=/bin/sh -c ulimit -n 51200
    ExecStart=shadow-tls --fastopen --v3 --strict server --wildcard-sni=authed --listen [::]:443 --server 127.0.0.1:63000 --tls p11.douyinpic.com:443 --password MVlWnwyr9vEOK8hL 
    [Install]
    WantedBy=multi-user.target


    3. 重载服务&启动

    systemctl daemon-reload
    systemctl enable --now shadow-tls


    4. 查看服务&日志

    systemctl status shadow-tls
    journalctl -f  -o cat -n 100 -u shadow-tls


    5. 使用

    vps [snell][shadow-tls-v3] = snell, 服务器IP , 443, psk=oKObPL9BuHcU2c5c, version=4, reuse=true, tfo=true, shadow-tls-password=MVlWnwyr9vEOK8hL, shadow-tls-version=3, shadow-tls-sni=p11.douyinpic.com


    因为我们在 Shadow TLS 开启了 --wildcard-sni=authed 所以 可以在客户端改 shadow-tls-sni 不用跟服务端设置的相同

    可能降低了安全性(?) 但是方便

    p11.douyinpic.com 是混淆, 需要你的套餐支持. 一般需要 443 端口

    📃 相关内容

    从 0 搭建一个 Shadowsocks 2022 + ShadowTLS V3 节点

    免流混淆零跳总结

    流邦支持 TLS 443 的混淆

    TLS 1.3 相关的文档 👆🏻上面的配置里开了 --strict 具体可以看这个文档

    ⚠️ 有些人可能需要看这个:shadow-tls CPU 占用高

    免流合集 服务器合集 频道资源合集 恰饭推荐 群组

    #Surge #免流 #混淆 #TLS #Snell #ShadowTLS #Shadow-TLS #节点 #服务器

    • ❤️19
    • 👍2
  10. Sub-Store 自动设置服务端证书 SHA-256 指纹仅 Node.js 版支持优先使用 sni, 其次节点服务端其他需求可以让 AI 改改. 比如哪些节点需要加之类的.这里示范的是直接从服务端取, 支持所有目标(包括 sing-box 的 certificate_public_key_sha256)

    Sub-Store 自动设置服务端证书 SHA-256 指纹

    仅 Node.js 版支持

    优先使用 sni, 其次节点服务端
    其他需求可以让 AI 改改. 比如哪些节点需要加之类的.
    这里示范的是直接从服务端取, 支持所有目标(包括 sing-box 的 certificate_public_key_sha256)

    const tls = require("tls");
    const crypto = require("crypto");

    function getCertificateInfo(host, port = 443) {
    return new Promise((resolve) => {
    const socket = tls.connect(
    {
    host,
    port,
    servername: host,
    rejectUnauthorized: false,
    },
    () => {
    try {
    const cert = socket.getPeerCertificate(true);

    if (!cert || !cert.raw) {
    socket.end();
    return resolve({
    fingerprint: "",
    publicKeySha256: "",
    });
    }

    const x509 = new crypto.X509Certificate(cert.raw);

    // SHA256 证书指纹
    const fingerprint = cert.fingerprint256 || "";

    // SHA256 公钥(SPKI)
    const publicKeyDer = x509.publicKey.export({
    type: "spki",
    format: "der",
    });

    const publicKeySha256 = crypto
    .createHash("sha256")
    .update(publicKeyDer)
    .digest("base64");

    socket.end();

    resolve({
    fingerprint,
    publicKeySha256,
    });
    } catch {
    socket.end();
    resolve({
    fingerprint: "",
    publicKeySha256: "",
    });
    }
    }
    );

    socket.on("error", () => {
    resolve({
    fingerprint: "",
    publicKeySha256: "",
    });
    });
    });
    }

    async function operator(proxies, targetPlatform, context) {
    console.log(`[证书] INFO: 开始处理 ${proxies.length} 个节点`);

    for await (const proxy of proxies) {
    const host = proxy.sni || proxy.server;

    if (!host || ProxyUtils.isIP(host)) {
    console.log(
    `[证书] WARN: [${proxy.name}] 跳过,目标为 IP 或为空 (${host || "-"})`
    );
    continue;
    }

    console.log(
    `[证书] INFO: [${proxy.name}] 正在获取 ${host} 的证书信息`
    );

    const cert = await getCertificateInfo(host);

    proxy.fingerprint = cert.fingerprint;

    if (cert.publicKeySha256) {
    proxy._certificate_public_key_sha256 = [cert.publicKeySha256];
    }

    if (cert.fingerprint) {
    console.log(
    `[证书] LOG: [${proxy.name}] fingerprint=${cert.fingerprint}, public_key_sha256=${cert.publicKeySha256}`
    );
    } else {
    console.log(`[证书] WARN: [${proxy.name}] 获取证书失败`);
    }
    }

    console.log(`[证书] INFO: 全部节点处理完成`);

    return proxies;
    }


    相关: 自建节点证书相关说明

    服务器合集 Sub-Store 合集 合集 恰饭推荐 群组 联系推广

    #节点 #证书 #SNI #TLS #SHA256 #指纹 #SSL #sing-box #mihomo #surge

    • ❤️12
  11. 自建节点证书相关说明抛砖引玉 留个备忘▎服务端验证客户端 SNI, 几个例子:Trojan-Go : verify_hostname 表示服务端是否校验客户端提供的SNI与服务端设置的一致性 文档Xray : rejectUnknownSni 服务端接收到的 SNI 与证书域名不匹配即拒绝 TLS 握手 文档sing-box: 问了下薄荷佬, 官版没有,fork 有 fork 有▎客户端验证服务端证书, 几个例子: Stash : server-cert-fingerprint TLS 握手时验证服务器证书 SHA256 指纹 文档 Surge: server-cert-fingerprint-sha256 文档skip-cert-verify=true :Surge will not verify the server's certificate.sni=off :turn off SNI completely mihomo: sni 为 IP 时, 也不发 sni▎覆盖用于验证证书的域名,但不会改变 SNI免流等场景下, SNI 改为混淆, 不关验证, 仍然验证证书的域名 Xray: verifyPeerCertByName, URI 上叫 vcn mihomo: name-cert-verify Surge: server-cert-verify-name sing-box(风佬版) certificate_server_name QX tls-verification Sub-Store 中(mihomo/Surge/QX)可按上述输入写字段, 或使用脚本操作 $server['name-cert-verify'] = 'b.com'▎备忘1. 在当前目录生成 10 年的 bing.com 自签证书:openssl req -x509 -nodes -newkey ec:<(openssl ecparam -name prime256v1) -keyout private.key -out certificate.pem -subj "/CN=bing.com" -days 365002. 获取服务器证书 SHA256 指纹:openssl x509 -noout -fingerprint -sha256 -inform pem -in certificate.pem对于远程服务器 openssl s_client -connect foo.com:443 -servername foo.com </dev/null 2>/dev/null | openssl x509 -noout -fingerprint -sha256 | cut -d= -f2▎如果想自动从服务端读取并设置 Sub-Store 自动设置服务端证书 SHA-256 指纹▎手动设置Sub-Store 中直接在输入里写对应的字段, 或使用脚本操作设置内部字段 tls-fingerprint 可自动转其他客户端, 但是 sing-box 的不一样, 没法直接转, 所以开放了字段让你自己设例如使用单行 JSON 的方式, 把俩字段都写上:{ "name": "节点名", "type": "anytls", "server": "服务器", "port": 443, "password": "xYbpwdF9vIELWoLmdC", "udp": true, "sni": "a.foo.com", "fingerprint": "SHA256 指纹", "_certificate_public_key_sha256": [ "SHA-256 哈希" ] } sing-box 中的 certificate_public_key_sha256 ,使用以下命令生成openssl x509 -in certificate.pem -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64对于远程服务器 echo | openssl s_client -servername foo.com -connect foo.com:443 2>/dev/null | openssl x509 -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64 Sub-Store 中需要使用脚本操作 $server._certificate_public_key_sha256 = [ "428F7quaQJvBhEr5TclcjPpsl1ryyNQo7oLBGhhC3UU=" ]参考 Lucy 整理好的 服务器合集 Sub-Store 合集 合集 恰饭推荐 群组 联系推广 #VPS #服务器 #节点 #自建 #证书 #SNI #hostname #TLS #SHA256 #自签 #指纹 #SSL

    自建节点证书相关说明

    抛砖引玉 留个备忘

    ▎服务端

    验证客户端 SNI, 几个例子:

    Trojan-Go : verify_hostname 表示服务端是否校验客户端提供的SNI与服务端设置的一致性 文档

    Xray : rejectUnknownSni 服务端接收到的 SNI 与证书域名不匹配即拒绝 TLS 握手 文档

    sing-box: 问了下薄荷佬, 官版没有,fork 有 fork 有

    ▎客户端

    验证服务端证书, 几个例子:

    Stash : server-cert-fingerprint TLS 握手时验证服务器证书 SHA256 指纹 文档

    Surge: server-cert-fingerprint-sha256 文档

    skip-cert-verify=true :
    Surge will not verify the server's certificate.

    sni=off :
    turn off SNI completely

    mihomo: sni 为 IP 时, 也不发 sni

    覆盖用于验证证书的域名,但不会改变 SNI

    免流等场景下, SNI 改为混淆, 不关验证, 仍然验证证书的域名

    Xray: verifyPeerCertByName, URI 上叫 vcn
    mihomo: name-cert-verify
    Surge: server-cert-verify-name
    sing-box(风佬版) certificate_server_name
    QX tls-verification

    Sub-Store 中(mihomo/Surge/QX)可按上述输入写字段, 或使用脚本操作 $server['name-cert-verify'] = 'b.com'

    ▎备忘

    1. 在当前目录生成 10 年的 bing.com 自签证书:

    openssl req -x509 -nodes -newkey ec:<(openssl ecparam -name prime256v1) -keyout private.key -out certificate.pem -subj "/CN=bing.com" -days 36500

    2. 获取服务器证书 SHA256 指纹:

    openssl x509 -noout -fingerprint -sha256 -inform pem -in certificate.pem

    对于远程服务器 openssl s_client -connect foo.com:443 -servername foo.com </dev/null 2>/dev/null | openssl x509 -noout -fingerprint -sha256 | cut -d= -f2

    ▎如果想自动从服务端读取并设置

    Sub-Store 自动设置服务端证书 SHA-256 指纹

    ▎手动设置

    Sub-Store 中直接在输入里写对应的字段, 或使用脚本操作设置内部字段 tls-fingerprint 可自动转其他客户端, 但是 sing-box 的不一样, 没法直接转, 所以开放了字段让你自己设

    例如使用单行 JSON 的方式, 把俩字段都写上:
    { "name": "节点名", "type": "anytls", "server": "服务器", "port": 443, "password": "xYbpwdF9vIELWoLmdC", "udp": true, "sni": "a.foo.com", "fingerprint": "SHA256 指纹", "_certificate_public_key_sha256": [ "SHA-256 哈希" ] } 


    sing-box 中的 certificate_public_key_sha256 ,使用以下命令生成
    openssl x509 -in certificate.pem -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64

    对于远程服务器 echo | openssl s_client -servername foo.com -connect foo.com:443 2>/dev/null | openssl x509 -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64

    Sub-Store 中需要使用脚本操作 $server._certificate_public_key_sha256 = [ "428F7quaQJvBhEr5TclcjPpsl1ryyNQo7oLBGhhC3UU=" ]

    参考 Lucy 整理好的

    服务器合集 Sub-Store 合集 合集 恰饭推荐 群组 联系推广

    #VPS #服务器 #节点 #自建 #证书 #SNI #hostname #TLS #SHA256 #自签 #指纹 #SSL

    • ❤️3