Search: #指纹

  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. CamoFox Browser: 面向 AI Agent 的反检测浏览器自动化服务 支持 VNC. 比如可以用 noVNC 链接临时介入, 操作浏览器进行某些手动操作 cli 命令(camofox-browser)和 skill(camofox) 没对应...需要自己软链接一下Camoufox tries its best with its human-like mouse movement algorithm• 基于 Camoufox 引擎实现 C++ 级指纹伪装,相比传统 Playwright / Puppeteer 的 JavaScript 补丁方案更稳定、更难被风控识别• 提供 REST API、CLI 与 OpenClaw 兼容接口,支持多会话隔离、持久化浏览器配置,以及跨语言的自动化接入• 内置元素快照引用、地理位置预设、搜索宏、控制台捕获与 Playwright Trace,适合构建可观测、可调试的 AI 浏览器工作流

    CamoFox Browser: 面向 AI Agent 的反检测浏览器自动化服务

    支持 VNC. 比如可以用 noVNC 链接临时介入, 操作浏览器进行某些手动操作

    cli 命令(camofox-browser)和 skill(camofox) 没对应...需要自己软链接一下

    Camoufox tries its best with its human-like mouse movement algorithm


    • 基于 Camoufox 引擎实现 C++ 级指纹伪装,相比传统 Playwright / Puppeteer 的 JavaScript 补丁方案更稳定、更难被风控识别

    • 提供 REST API、CLI 与 OpenClaw 兼容接口,支持多会话隔离、持久化浏览器配置,以及跨语言的自动化接入

    • 内置元素快照引用、地理位置预设、搜索宏、控制台捕获与 Playwright Trace,适合构建可观测、可调试的 AI 浏览器工作流

    https://github.com/redf0x1/camofox-browser

    #AI #Agent #浏览器 #浏览器自动化 #反检测浏览器 #指纹伪装 #REST #API #CLI #Playwright #OpenClaw #Camoufox #GitHub GitHub - redf0x1/camofox-browser: Anti-detection browser server for AI agents — REST API wrapping Camoufox engine with OpenClaw…

    • ❤️5
  4. 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
  5. 自建节点证书相关说明抛砖引玉 留个备忘▎服务端验证客户端 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