<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>指纹 | 折腾啥</title><description>Power Users/Automators 折腾/讨论/分享各种开源工具/脚本/自动化工作流👥 @zhetengsha_group📌 合集 https://t.me/zhetengsha/2🎁 恰饭 https://t.me/zhetengsha/957📢 广告投放 @xream @xream_botBuy ads: https://telega.io/c/zhetengshafeedId:55438372655431680+userId:62307599601855488</description><link>http://telegram.zhetengsha.eu.org</link><item><title>自建节点证书相关说明更新▎覆盖用于验证证书的域名，但不会改变 SNI免流等场景下, SNI 改为混淆, 不关验证, 仍然验证证书的域名 Xray: verifyPeerCertByName, URI 上叫 vcn mihomo: name-cert-verify Surge: server-cert-verify-name Sub-Store 中可按上述输入写字段, 或使用脚本操作 $server[&apos;name-cert-verify&apos;] = &apos;b.com&apos; 原消息 服务器合集  合集   恰饭推荐   群组 联系推广 #VPS #服务器 #节点 #自建 #证书 #SNI #hostname #TLS #SHA256 #自签 #指纹 #SSL</title><link>http://telegram.zhetengsha.eu.org/posts/6442</link><guid isPermaLink="true">http://telegram.zhetengsha.eu.org/posts/6442</guid><pubDate>Sat, 18 Jul 2026 04:01:42 GMT</pubDate><content:encoded>&lt;u&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/5296369303661067030.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt;&lt;/u&gt;&lt;u&gt;自建节点证书相关说明更新&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;▎&lt;b&gt;覆盖用于验证证书的域名&lt;/b&gt;，但&lt;b&gt;不会改变 SNI&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;免流等场景下, SNI 改为混淆, 不关验证, 仍然&lt;b&gt;验证证书的域名&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/5170221875044811472.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; Xray: &lt;code&gt;verifyPeerCertByName&lt;/code&gt;, URI 上叫 &lt;code&gt;vcn&lt;/code&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/4960853905970823886.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; mihomo: &lt;a href=&quot;https://github.com/MetaCubeX/mihomo/commit/5677fd38088efc9cc3abe7ed54fefeeb1bea0ac4#diff-06e23ea20a066a0e717b5eaa625dfd3f1d11439f4ad5bd705d16d6e1758b39c0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;name-cert-verify&quot;&gt;name-cert-verify&lt;/a&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/4961174074307904393.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; Surge: &lt;a href=&quot;https://t.me/SurgeTestFlight/1663&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;server-cert-verify-name&quot;&gt;server-cert-verify-name&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/4960754541902430862.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; Sub-Store 中可按上述输入写字段, 或使用脚本操作 &lt;code&gt;$server[&apos;name-cert-verify&apos;] = &apos;b.com&apos;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327684955379862886.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/1433&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;原消息&quot;&gt;原消息&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327711622831803904.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/154&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;服务器合集&quot;&gt;服务器合集&lt;/a&gt; &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327880277607583303.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/2&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;合集&quot;&gt;合集&lt;/a&gt;  &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327792445526380187.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/957&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;恰饭推荐&quot;&gt;恰饭推荐&lt;/a&gt;  &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6021860481923288796.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha_group&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;群组&quot;&gt;群组&lt;/a&gt; &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6330367862535884142.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt;&lt;a href=&quot;https://t.me/xream_bot&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;联系推广&quot;&gt;联系推广&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327836885552991740.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/1354&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;#VPS #服务器 #节点 #自建 #证书 #SNI #hostname #TLS #SHA256 #自签 #指纹 #SSL&quot;&gt;#VPS #服务器 #节点 #自建 #证书 #SNI #hostname #TLS #SHA256 #自签 #指纹 #SSL&lt;/a&gt;</content:encoded></item><item><title> Sub-Store 自动设置服务端证书 SHA-256 指纹仅 Node.js 版支持这里示范的是直接从服务端取, 支持所有目标(包括  sing-box 的 certificate_public_key_sha256) 原消息相关: 自建节点证书相关说明 服务器合集   Sub-Store 合集   合集   恰饭推荐   群组 联系推广 #节点 #证书 #SNI #TLS #SHA256 #指纹 #SSL #sing-box #mihomo #surge</title><link>http://telegram.zhetengsha.eu.org/posts/6392</link><guid isPermaLink="true">http://telegram.zhetengsha.eu.org/posts/6392</guid><pubDate>Mon, 13 Jul 2026 03:59:58 GMT</pubDate><content:encoded>&lt;div class=&quot;image-list-container image-list-odd&quot;&gt;
      &lt;button type=&quot;button&quot; class=&quot;image-preview-button image-preview-wrap&quot; popovertarget=&quot;modal-6392-0&quot; popovertargetaction=&quot;show&quot; aria-label=&quot;Open image preview:  Sub-Store 自动设置服务端证书 SHA-256 指纹仅 Node.js 版支持这里示范的是直接从服务端取, 支持所有目标(包括  sing-box 的 certificate_public_key_sha256) 原消息相关: 自建节点证书相关说明 服务器合集   Sub-Store 合集   合集   恰饭推荐   群组 联系推广 #节点 #证书 #SNI #TLS #SHA256 #指纹 #SSL #sing-box #mihomo #surge&quot;&gt;
        &lt;img src=&quot;/static/https://cdn5.telesco.pe/file/bMnDGtgvyfVDdtt0Z8bWJ1533mV04hM4bRhVuolLfDcpaW_85xqKhOb3IcXrCiT5RZXqTOToT_5Nzs-0IKf4GqDN9GJXZxJk5NFUHVW17z7GtLElAQGQ-Ho-p3JKrftsUBd0y5wGE4Iu2UDdGBMCdCD3gSoShV-xt0nX1JbsdVtkPd6ZevfgASEaqZcqUe2SkTKtGhqG7FSQtfuposqXbO4rfp3txtlwXq7_BpVGGOn1L3sDGeLGO7D1iNheT5-SOZsIYvGHiI0BSiEX_ks8T2T_goGt67r4j_Qek6W-dJ3DbgFXx9DW5VBIbafRZl1q3I6h9ATmTOYaQIn0ec2uVg.jpg&quot; alt=&quot; Sub-Store 自动设置服务端证书 SHA-256 指纹仅 Node.js 版支持这里示范的是直接从服务端取, 支持所有目标(包括  sing-box 的 certificate_public_key_sha256) 原消息相关: 自建节点证书相关说明 服务器合集   Sub-Store 合集   合集   恰饭推荐   群组 联系推广 #节点 #证书 #SNI #TLS #SHA256 #指纹 #SSL #sing-box #mihomo #surge&quot; width=&quot;800&quot; height=&quot;259&quot; loading=&quot;eager&quot; /&gt;
      &lt;/button&gt;
      &lt;div class=&quot;modal&quot; id=&quot;modal-6392-0&quot; popover=&quot;auto&quot; aria-label=&quot;Image preview&quot;&gt;
        &lt;button type=&quot;button&quot; class=&quot;modal__backdrop&quot; popovertarget=&quot;modal-6392-0&quot; popovertargetaction=&quot;hide&quot; aria-label=&quot;Close image preview&quot;&gt;&lt;/button&gt;
        &lt;button type=&quot;button&quot; class=&quot;modal__close&quot; popovertarget=&quot;modal-6392-0&quot; popovertargetaction=&quot;hide&quot; aria-label=&quot;Close image preview&quot;&gt;×&lt;/button&gt;
        &lt;div class=&quot;modal__surface&quot;&gt;
          
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/4960754541902430862.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;u&gt;Sub-Store 自动设置服务端证书 SHA-256 &lt;/u&gt;&lt;mark class=&quot;highlight&quot;&gt;&lt;u&gt;指纹&lt;/u&gt;&lt;/mark&gt;&lt;br /&gt;&lt;br /&gt;仅 Node.js 版支持&lt;br /&gt;这里示范的是直接从服务端取, 支持所有目标(包括 &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/5154930575995306994.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; sing-box 的 &lt;code&gt;certificate_public_key_sha256&lt;/code&gt;)&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327684955379862886.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/1434&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;原消息&quot;&gt;原消息&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;相关: &lt;u&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/5296369303661067030.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt;&lt;/u&gt;&lt;a href=&quot;https://t.me/zhetengsha/1433&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;自建节点证书相关说明&quot;&gt;自建节点证书相关说明&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327711622831803904.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/154&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;服务器合集&quot;&gt;服务器合集&lt;/a&gt;  &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327711622831803904.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/214&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Sub-Store 合集&quot;&gt;Sub-Store 合集&lt;/a&gt;  &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327880277607583303.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/2&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;合集&quot;&gt;合集&lt;/a&gt;  &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327792445526380187.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/957&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;恰饭推荐&quot;&gt;恰饭推荐&lt;/a&gt;  &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6021860481923288796.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha_group&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;群组&quot;&gt;群组&lt;/a&gt; &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6330367862535884142.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt;&lt;a href=&quot;https://t.me/xream_bot&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;联系推广&quot;&gt;联系推广&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327836885552991740.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/1354&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;#节点 #证书 #SNI #TLS #SHA256 #指纹 #SSL&quot;&gt;#节点 #证书 #SNI #TLS #SHA256 #指纹 #SSL&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23sing&quot; title=&quot;#sing&quot;&gt;#sing&lt;/a&gt;-box &lt;a href=&quot;/search/result?q=%23mihomo&quot; title=&quot;#mihomo&quot;&gt;#mihomo&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23surge&quot; title=&quot;#surge&quot;&gt;#surge&lt;/a&gt;</content:encoded></item><item><title>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 浏览器工作流</title><link>http://telegram.zhetengsha.eu.org/posts/5103</link><guid isPermaLink="true">http://telegram.zhetengsha.eu.org/posts/5103</guid><pubDate>Tue, 17 Mar 2026 09:27:57 GMT</pubDate><content:encoded>&lt;u&gt;CamoFox Browser: 面向 AI Agent 的反检测浏览器自动化服务&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6258165008409038598.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; 支持 VNC. 比如可以用 noVNC 链接临时介入, 操作浏览器进行某些手动操作&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6260354638571113707.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; cli 命令(camofox-browser)和 skill(camofox) 没对应...需要自己软链接一下&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Camoufox tries its best with its human-like mouse movement algorithm&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;• 基于 Camoufox 引擎实现 C++ 级指纹伪装，相比传统 Playwright / Puppeteer 的 JavaScript 补丁方案更稳定、更难被风控识别&lt;br /&gt;&lt;br /&gt;• 提供 REST API、CLI 与 OpenClaw 兼容接口，支持多会话隔离、持久化浏览器配置，以及跨语言的自动化接入&lt;br /&gt;&lt;br /&gt;• 内置元素快照引用、地理位置预设、搜索宏、控制台捕获与 Playwright Trace，适合构建可观测、可调试的 AI 浏览器工作流&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://github.com/redf0x1/camofox-browser&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://github.com/redf0x1/camofox-browser&quot;&gt;https://github.com/redf0x1/camofox-browser&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;/search/result?q=%23AI&quot; title=&quot;#AI&quot;&gt;#AI&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Agent&quot; title=&quot;#Agent&quot;&gt;#Agent&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%B5%8F%E8%A7%88%E5%99%A8&quot; title=&quot;#浏览器&quot;&gt;#浏览器&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%B5%8F%E8%A7%88%E5%99%A8%E8%87%AA%E5%8A%A8%E5%8C%96&quot; title=&quot;#浏览器自动化&quot;&gt;#浏览器自动化&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%8F%8D%E6%A3%80%E6%B5%8B%E6%B5%8F%E8%A7%88%E5%99%A8&quot; title=&quot;#反检测浏览器&quot;&gt;#反检测浏览器&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%8C%87%E7%BA%B9%E4%BC%AA%E8%A3%85&quot; title=&quot;#指纹伪装&quot;&gt;#指纹伪装&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23REST&quot; title=&quot;#REST&quot;&gt;#REST&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23API&quot; title=&quot;#API&quot;&gt;#API&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23CLI&quot; title=&quot;#CLI&quot;&gt;#CLI&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Playwright&quot; title=&quot;#Playwright&quot;&gt;#Playwright&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23OpenClaw&quot; title=&quot;#OpenClaw&quot;&gt;#OpenClaw&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Camoufox&quot; title=&quot;#Camoufox&quot;&gt;#Camoufox&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23GitHub&quot; title=&quot;#GitHub&quot;&gt;#GitHub&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://github.com/redf0x1/camofox-browser&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Anti-detection browser server for AI agents — REST API wrapping Camoufox engine with OpenClaw plugin support - redf0x1/camofox-browser&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;GitHub&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;GitHub - redf0x1/camofox-browser: Anti-detection browser server for AI agents — REST API wrapping Camoufox engine with OpenClaw…&quot; src=&quot;/static/https://cdn4.telesco.pe/file/GN7n_ZygSKacsVWMry-T7z00eB9L0k8sLrhgsiAdk0_9mMqVjz5y_tNo6mIH3i_GMy9MBT7yF_d4kkbdgUJtKEb7wcN5gKtJsfI9u2COOWpvg0i4XE57koHjov6ddQRCpZeQRrHfDmhGYM6yQGbICU065kTc5tD3UYU94xqvuUuuhmvDvoOv0Ow_SJuQktwKe-C0YbY3SrAvQjDP8mEkX4dAFw3Dq1k431pVsSQifGRqQvyfpB8ViN5farHNgMSToEHYTI1uIMrbqAfDCPtYbuZ9pyci7cUVqZBdORnyo2qzoxGJZFfs9yhuSAMVW3qm1LiK77rz3I6PHp4LV7eBvA.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;GitHub - redf0x1/camofox-browser: Anti-detection browser server for AI agents — REST API wrapping Camoufox engine with OpenClaw…&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;Anti-detection browser server for AI agents — REST API wrapping Camoufox engine with OpenClaw plugin support - redf0x1/camofox-browser&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title> Sub-Store 自动设置服务端证书 SHA-256 指纹仅 Node.js 版支持优先使用 sni, 其次节点服务端其他需求可以让 AI 改改. 比如哪些节点需要加之类的.这里示范的是直接从服务端取, 支持所有目标(包括  sing-box 的 certificate_public_key_sha256)</title><link>http://telegram.zhetengsha.eu.org/posts/1434</link><guid isPermaLink="true">http://telegram.zhetengsha.eu.org/posts/1434</guid><pubDate>Tue, 21 May 2024 04:38:25 GMT</pubDate><content:encoded>&lt;div class=&quot;image-list-container image-list-odd&quot;&gt;
      &lt;button type=&quot;button&quot; class=&quot;image-preview-button image-preview-wrap&quot; popovertarget=&quot;modal-1434-0&quot; popovertargetaction=&quot;show&quot; aria-label=&quot;Open image preview:  Sub-Store 自动设置服务端证书 SHA-256 指纹仅 Node.js 版支持优先使用 sni, 其次节点服务端其他需求可以让 AI 改改. 比如哪些节点需要加之类的.这里示范的是直接从服务端取, 支持所有目标(包括  sing-box 的 certificate_public_key_sha256)&quot;&gt;
        &lt;img src=&quot;/static/https://cdn5.telesco.pe/file/MrKMrbt2wn12Mvk3g_J5yMsl-y7R3KI8aO6kfcCRi4tCQ5fnSmUPnNLR7fEKnPVajoFqVGVy_-8ZBRbUwiO-KDvBgqcfoK8n2LjKymxXjhxNPdXW8-DFpxE5hyBg3xZJJAfNjBGGc5_G6Eoswoxtslp8NH7jOzEC9KYsjqtdMNqGkK-vXAYcze9E0eouzEsjX4SrYgxQxoRgjjGECeIyypts2ZU6olIvmMNvKwZ3Z_8J0UnnF3oSydlPyYPl98qHEzxZvx3PKzj2UdxJf4XQUTcrfDse0ai3c6gSXjDfaKgXt4OUO_dsdzV0O25GrDobPotqmN7bfarV3nh0f7_pQA.jpg&quot; alt=&quot; Sub-Store 自动设置服务端证书 SHA-256 指纹仅 Node.js 版支持优先使用 sni, 其次节点服务端其他需求可以让 AI 改改. 比如哪些节点需要加之类的.这里示范的是直接从服务端取, 支持所有目标(包括  sing-box 的 certificate_public_key_sha256)&quot; width=&quot;800&quot; height=&quot;259&quot; loading=&quot;eager&quot; /&gt;
      &lt;/button&gt;
      &lt;div class=&quot;modal&quot; id=&quot;modal-1434-0&quot; popover=&quot;auto&quot; aria-label=&quot;Image preview&quot;&gt;
        &lt;button type=&quot;button&quot; class=&quot;modal__backdrop&quot; popovertarget=&quot;modal-1434-0&quot; popovertargetaction=&quot;hide&quot; aria-label=&quot;Close image preview&quot;&gt;&lt;/button&gt;
        &lt;button type=&quot;button&quot; class=&quot;modal__close&quot; popovertarget=&quot;modal-1434-0&quot; popovertargetaction=&quot;hide&quot; aria-label=&quot;Close image preview&quot;&gt;×&lt;/button&gt;
        &lt;div class=&quot;modal__surface&quot;&gt;
          
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/4960754541902430862.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;u&gt;Sub-Store 自动设置服务端证书 SHA-256 &lt;/u&gt;&lt;mark class=&quot;highlight&quot;&gt;&lt;u&gt;指纹&lt;/u&gt;&lt;/mark&gt;&lt;br /&gt;&lt;br /&gt;仅 Node.js 版支持&lt;br /&gt;&lt;br /&gt;优先使用 &lt;code&gt;sni&lt;/code&gt;, 其次节点服务端&lt;br /&gt;其他需求可以让 AI 改改. 比如哪些节点需要加之类的.&lt;br /&gt;这里示范的是直接从服务端取, 支持所有目标(包括 &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/5154930575995306994.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; sing-box 的 &lt;code&gt;certificate_public_key_sha256&lt;/code&gt;)&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;tg-expandable&quot;&gt;
      &lt;input type=&quot;checkbox&quot; id=&quot;expand-1-0&quot; class=&quot;tg-expandable__checkbox&quot; aria-label=&quot;Toggle hidden content&quot; aria-controls=&quot;expand-1-0-content&quot; /&gt;
      &lt;div id=&quot;expand-1-0-content&quot; class=&quot;tg-expandable__content&quot;&gt;const tls = require(&quot;tls&quot;);&lt;br /&gt;const crypto = require(&quot;crypto&quot;);&lt;br /&gt;&lt;br /&gt;function getCertificateInfo(host, port = 443) {&lt;br /&gt;  return new Promise((resolve) =&amp;gt; {&lt;br /&gt;    const socket = tls.connect(&lt;br /&gt;      {&lt;br /&gt;        host,&lt;br /&gt;        port,&lt;br /&gt;        servername: host,&lt;br /&gt;        rejectUnauthorized: false,&lt;br /&gt;      },&lt;br /&gt;      () =&amp;gt; {&lt;br /&gt;        try {&lt;br /&gt;          const cert = socket.getPeerCertificate(true);&lt;br /&gt;&lt;br /&gt;          if (!cert || !cert.raw) {&lt;br /&gt;            socket.end();&lt;br /&gt;            return resolve({&lt;br /&gt;              fingerprint: &quot;&quot;,&lt;br /&gt;              publicKeySha256: &quot;&quot;,&lt;br /&gt;            });&lt;br /&gt;          }&lt;br /&gt;&lt;br /&gt;          const x509 = new crypto.X509Certificate(cert.raw);&lt;br /&gt;&lt;br /&gt;          // SHA256 证书指纹&lt;br /&gt;          const fingerprint = cert.fingerprint256 || &quot;&quot;;&lt;br /&gt;&lt;br /&gt;          // SHA256 公钥（SPKI）&lt;br /&gt;          const publicKeyDer = x509.publicKey.export({&lt;br /&gt;            type: &quot;spki&quot;,&lt;br /&gt;            format: &quot;der&quot;,&lt;br /&gt;          });&lt;br /&gt;&lt;br /&gt;          const publicKeySha256 = crypto&lt;br /&gt;            .createHash(&quot;sha256&quot;)&lt;br /&gt;            .update(publicKeyDer)&lt;br /&gt;            .digest(&quot;base64&quot;);&lt;br /&gt;&lt;br /&gt;          socket.end();&lt;br /&gt;&lt;br /&gt;          resolve({&lt;br /&gt;            fingerprint,&lt;br /&gt;            publicKeySha256,&lt;br /&gt;          });&lt;br /&gt;        } catch {&lt;br /&gt;          socket.end();&lt;br /&gt;          resolve({&lt;br /&gt;            fingerprint: &quot;&quot;,&lt;br /&gt;            publicKeySha256: &quot;&quot;,&lt;br /&gt;          });&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;    );&lt;br /&gt;&lt;br /&gt;    socket.on(&quot;error&quot;, () =&amp;gt; {&lt;br /&gt;      resolve({&lt;br /&gt;        fingerprint: &quot;&quot;,&lt;br /&gt;        publicKeySha256: &quot;&quot;,&lt;br /&gt;      });&lt;br /&gt;    });&lt;br /&gt;  });&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;async function operator(proxies, targetPlatform, context) {&lt;br /&gt;  console.log(`[证书] INFO: 开始处理 ${proxies.length} 个节点`);&lt;br /&gt;&lt;br /&gt;  for await (const proxy of proxies) {&lt;br /&gt;    const host = proxy.sni || proxy.server;&lt;br /&gt;&lt;br /&gt;    if (!host || ProxyUtils.isIP(host)) {&lt;br /&gt;      console.log(&lt;br /&gt;        `[证书] WARN: [${&lt;a href=&quot;http://proxy.name/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;proxy.name&quot;&gt;proxy.name&lt;/a&gt;}] 跳过，目标为 IP 或为空 (${host || &quot;-&quot;})`&lt;br /&gt;      );&lt;br /&gt;      continue;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    console.log(&lt;br /&gt;      `[证书] INFO: [${&lt;a href=&quot;http://proxy.name/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;proxy.name&quot;&gt;proxy.name&lt;/a&gt;}] 正在获取 ${host} 的证书信息`&lt;br /&gt;    );&lt;br /&gt;&lt;br /&gt;    const cert = await getCertificateInfo(host);&lt;br /&gt;&lt;br /&gt;    proxy.fingerprint = cert.fingerprint;&lt;br /&gt;&lt;br /&gt;    if (cert.publicKeySha256) {&lt;br /&gt;      proxy._certificate_public_key_sha256 = [cert.publicKeySha256];&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    if (cert.fingerprint) {&lt;br /&gt;      console.log(&lt;br /&gt;        `[证书] LOG: [${&lt;a href=&quot;http://proxy.name/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;proxy.name&quot;&gt;proxy.name&lt;/a&gt;}] fingerprint=${cert.fingerprint}, public_key_sha256=${cert.publicKeySha256}`&lt;br /&gt;      );&lt;br /&gt;    } else {&lt;br /&gt;      console.log(`[证书] WARN: [${&lt;a href=&quot;http://proxy.name/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;proxy.name&quot;&gt;proxy.name&lt;/a&gt;}] 获取证书失败`);&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  console.log(`[证书] INFO: 全部节点处理完成`);&lt;br /&gt;&lt;br /&gt;  return proxies;&lt;br /&gt;}&lt;/div&gt;
      &lt;label for=&quot;expand-1-0&quot; class=&quot;tg-expandable__toggle&quot;&gt;&lt;span class=&quot;sr-only&quot;&gt;Toggle hidden content&lt;/span&gt;&lt;/label&gt;
    &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;相关: &lt;u&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/5296369303661067030.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt;&lt;/u&gt;&lt;a href=&quot;https://t.me/zhetengsha/1433&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;自建节点证书相关说明&quot;&gt;自建节点证书相关说明&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327711622831803904.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/154&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;服务器合集&quot;&gt;服务器合集&lt;/a&gt;  &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327711622831803904.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/214&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Sub-Store 合集&quot;&gt;Sub-Store 合集&lt;/a&gt;  &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327880277607583303.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/2&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;合集&quot;&gt;合集&lt;/a&gt;  &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327792445526380187.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/957&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;恰饭推荐&quot;&gt;恰饭推荐&lt;/a&gt;  &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6021860481923288796.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha_group&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;群组&quot;&gt;群组&lt;/a&gt; &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6330367862535884142.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt;&lt;a href=&quot;https://t.me/xream_bot&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;联系推广&quot;&gt;联系推广&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327836885552991740.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;/search/result?q=%23%E8%8A%82%E7%82%B9&quot; title=&quot;#节点&quot;&gt;#节点&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E8%AF%81%E4%B9%A6&quot; title=&quot;#证书&quot;&gt;#证书&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23SNI&quot; title=&quot;#SNI&quot;&gt;#SNI&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23TLS&quot; title=&quot;#TLS&quot;&gt;#TLS&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23SHA256&quot; title=&quot;#SHA256&quot;&gt;#SHA256&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%8C%87%E7%BA%B9&quot; title=&quot;#指纹&quot;&gt;#指纹&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23SSL&quot; title=&quot;#SSL&quot;&gt;#SSL&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23sing&quot; title=&quot;#sing&quot;&gt;#sing&lt;/a&gt;-box &lt;a href=&quot;/search/result?q=%23mihomo&quot; title=&quot;#mihomo&quot;&gt;#mihomo&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23surge&quot; title=&quot;#surge&quot;&gt;#surge&lt;/a&gt;</content:encoded></item><item><title>自建节点证书相关说明抛砖引玉 留个备忘▎服务端验证客户端 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&apos;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[&apos;name-cert-verify&apos;] = &apos;b.com&apos;▎备忘1. 在当前目录生成 10 年的 bing.com 自签证书:openssl req -x509 -nodes -newkey ec:&lt;(openssl ecparam -name prime256v1) -keyout private.key -out certificate.pem -subj &quot;/CN=bing.com&quot; -days 365002. 获取服务器证书 SHA256 指纹:openssl x509 -noout -fingerprint -sha256 -inform pem -in certificate.pem对于远程服务器 openssl s_client -connect foo.com:443 -servername foo.com &lt;/dev/null 2&gt;/dev/null | openssl x509 -noout -fingerprint -sha256 | cut -d= -f2▎如果想自动从服务端读取并设置 Sub-Store 自动设置服务端证书 SHA-256 指纹▎手动设置Sub-Store 中直接在输入里写对应的字段, 或使用脚本操作设置内部字段 tls-fingerprint 可自动转其他客户端, 但是 sing-box 的不一样, 没法直接转, 所以开放了字段让你自己设例如使用单行 JSON 的方式, 把俩字段都写上:{ &quot;name&quot;: &quot;节点名&quot;, &quot;type&quot;: &quot;anytls&quot;, &quot;server&quot;: &quot;服务器&quot;, &quot;port&quot;: 443, &quot;password&quot;: &quot;xYbpwdF9vIELWoLmdC&quot;, &quot;udp&quot;: true, &quot;sni&quot;: &quot;a.foo.com&quot;, &quot;fingerprint&quot;: &quot;SHA256 指纹&quot;, &quot;_certificate_public_key_sha256&quot;: [ &quot;SHA-256 哈希&quot; ] }  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&gt;/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 = [ &quot;428F7quaQJvBhEr5TclcjPpsl1ryyNQo7oLBGhhC3UU=&quot; ]参考 Lucy 整理好的 服务器合集   Sub-Store 合集   合集   恰饭推荐   群组 联系推广 #VPS #服务器 #节点 #自建 #证书 #SNI #hostname #TLS #SHA256 #自签 #指纹 #SSL</title><link>http://telegram.zhetengsha.eu.org/posts/1433</link><guid isPermaLink="true">http://telegram.zhetengsha.eu.org/posts/1433</guid><pubDate>Tue, 21 May 2024 03:21:45 GMT</pubDate><content:encoded>&lt;u&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/5296369303661067030.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt;&lt;/u&gt;&lt;u&gt;自建节点证书相关说明&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;抛砖引玉 留个备忘&lt;br /&gt;&lt;br /&gt;▎服务端&lt;br /&gt;&lt;br /&gt;验证客户端 SNI, 几个例子:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Trojan-Go&lt;/code&gt; : &lt;code&gt;verify_hostname&lt;/code&gt; 表示服务端是否校验客户端提供的SNI与服务端设置的一致性 &lt;a href=&quot;https://p4gefau1t.github.io/trojan-go/basic/full-config&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;文档&quot;&gt;文档&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Xray&lt;/code&gt; : &lt;code&gt;rejectUnknownSni&lt;/code&gt; 服务端接收到的 SNI 与证书域名不匹配即拒绝 TLS 握手 &lt;a href=&quot;https://xtls.github.io/config/transport.html#tlsobject&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;文档&quot;&gt;文档&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;sing-box&lt;/code&gt;: 问了下薄荷佬, 官版没有，&lt;a href=&quot;https://github.com/xchacha20-poly1305/sing-box/commit/d371c230b63a6f7ee4e46a791ba6624c7f64e7f5&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;fork 有&quot;&gt;&lt;s&gt;fork 有&lt;/s&gt;&lt;/a&gt;  &lt;a href=&quot;https://github.com/reF1nd/sing-box/tree/reF1nd-testing#inbound-tls&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;fork 有&quot;&gt;fork 有&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;▎客户端&lt;br /&gt;&lt;br /&gt;验证服务端证书, 几个例子:&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/4961275946637197948.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; Stash : &lt;code&gt;server-cert-fingerprint&lt;/code&gt; TLS 握手时验证服务器证书 SHA256 &lt;mark class=&quot;highlight&quot;&gt;指纹&lt;/mark&gt; &lt;a href=&quot;https://stash.wiki/proxy-protocols/proxy-types.zh&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;文档&quot;&gt;文档&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/4961174074307904393.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; Surge:  &lt;code&gt;server-cert-fingerprint-sha256&lt;/code&gt; &lt;a href=&quot;https://manual.nssurge.com/policy/proxy.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;文档&quot;&gt;文档&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;skip-cert-verify=true&lt;/code&gt; :&lt;br /&gt;&lt;blockquote&gt;Surge will not verify the server&apos;s certificate.&lt;/blockquote&gt;&lt;br /&gt;&lt;code&gt;sni=off&lt;/code&gt; :&lt;br /&gt;&lt;blockquote&gt;turn off SNI completely&lt;/blockquote&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/4960853905970823886.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; mihomo: &lt;code&gt;sni&lt;/code&gt; 为 IP 时, 也不发 &lt;code&gt;sni&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;▎&lt;b&gt;覆盖用于验证证书的域名&lt;/b&gt;，但&lt;b&gt;不会改变 SNI&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;免流等场景下, SNI 改为混淆, 不关验证, 仍然&lt;b&gt;验证证书的域名&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/5170221875044811472.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; Xray: &lt;code&gt;verifyPeerCertByName&lt;/code&gt;, URI 上叫 &lt;code&gt;vcn&lt;/code&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/4960853905970823886.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; mihomo: &lt;a href=&quot;https://github.com/MetaCubeX/mihomo/commit/5677fd38088efc9cc3abe7ed54fefeeb1bea0ac4#diff-06e23ea20a066a0e717b5eaa625dfd3f1d11439f4ad5bd705d16d6e1758b39c0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;name-cert-verify&quot;&gt;name-cert-verify&lt;/a&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/4961174074307904393.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; Surge: &lt;a href=&quot;https://t.me/SurgeTestFlight/1663&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;server-cert-verify-name&quot;&gt;server-cert-verify-name&lt;/a&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/5154930575995306994.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; sing-box(风佬版) &lt;a href=&quot;https://t.me/sing_box_reF1nd/3851&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;certificate_server_name&quot;&gt;certificate_server_name&lt;/a&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/4961270096891740895.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; QX &lt;a href=&quot;https://t.me/QuanXNews/415&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;tls-verification&quot;&gt;tls-verification&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/4960754541902430862.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; Sub-Store 中(mihomo/Surge/QX)可按上述输入写字段, 或使用脚本操作 &lt;code&gt;$server[&apos;name-cert-verify&apos;] = &apos;b.com&apos;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;▎备忘&lt;br /&gt;&lt;br /&gt;1. 在当前目录生成 10 年的 &lt;code&gt;bing.com&lt;/code&gt; 自签证书:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;openssl req -x509 -nodes -newkey ec:&amp;lt;(openssl ecparam -name prime256v1) -keyout private.key -out certificate.pem -subj &quot;/CN=bing.com&quot; -days 36500&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2. 获取服务器证书 SHA256 &lt;mark class=&quot;highlight&quot;&gt;指纹&lt;/mark&gt;:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;openssl x509 -noout -fingerprint -sha256 -inform pem -in certificate.pem&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;对于远程服务器 &lt;code&gt;openssl s_client -connect foo.com:443 -servername foo.com &amp;lt;/dev/null 2&amp;gt;/dev/null | openssl x509 -noout -fingerprint -sha256 | cut -d= -f2&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;▎如果想自动从服务端读取并设置&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/4960754541902430862.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/1434&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Sub-Store 自动设置服务端证书 SHA-256 指纹&quot;&gt;Sub-Store 自动设置服务端证书 SHA-256 &lt;mark class=&quot;highlight&quot;&gt;指纹&lt;/mark&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;▎手动设置&lt;br /&gt;&lt;br /&gt;Sub-Store 中直接在输入里写对应的字段, 或使用脚本操作设置内部字段 &lt;code&gt;tls-fingerprint&lt;/code&gt; 可自动转其他客户端, 但是 sing-box 的不一样, 没法直接转, 所以开放了字段让你自己设&lt;br /&gt;&lt;br /&gt;例如使用单行 JSON 的方式, 把俩字段都写上:&lt;br /&gt;&lt;pre class=&quot;code&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;节点名&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;anytls&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;server&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;服务器&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;port&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;443&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;password&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;xYbpwdF9vIELWoLmdC&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;udp&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;sni&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;a.foo.com&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;fingerprint&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;SHA256 指纹&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;_certificate_public_key_sha256&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;SHA-256 哈希&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/5154930575995306994.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; sing-box 中的 &lt;a href=&quot;https://sing-box.sagernet.org/zh/configuration/shared/tls/#certificate_public_key_sha256&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;certificate_public_key_sha256&quot;&gt;certificate_public_key_sha256&lt;/a&gt; ，使用以下命令生成&lt;br /&gt;&lt;code&gt;openssl x509 -in certificate.pem -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;对于远程服务器 &lt;code&gt;echo | openssl s_client -servername foo.com -connect foo.com:443 2&amp;gt;/dev/null | openssl x509 -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/4960754541902430862.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; Sub-Store 中需要使用脚本操作 &lt;code&gt;$server._certificate_public_key_sha256 = [ &quot;428F7quaQJvBhEr5TclcjPpsl1ryyNQo7oLBGhhC3UU=&quot; ]&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://t.me/LUCYChannel_1024/4858&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;参考 Lucy 整理好的&quot;&gt;参考 Lucy 整理好的&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327711622831803904.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/154&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;服务器合集&quot;&gt;服务器合集&lt;/a&gt;  &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327711622831803904.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/214&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Sub-Store 合集&quot;&gt;Sub-Store 合集&lt;/a&gt;  &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327880277607583303.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/2&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;合集&quot;&gt;合集&lt;/a&gt;  &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327792445526380187.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/957&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;恰饭推荐&quot;&gt;恰饭推荐&lt;/a&gt;  &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6021860481923288796.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha_group&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;群组&quot;&gt;群组&lt;/a&gt; &lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6330367862535884142.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt;&lt;a href=&quot;https://t.me/xream_bot&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;联系推广&quot;&gt;联系推广&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img class=&quot;tg-emoji&quot; src=&quot;/static/https://telegram.me/i/emoji/6327836885552991740.webp&quot; alt=&quot;&quot; loading=&quot;lazy&quot; width=&quot;20&quot; height=&quot;20&quot; /&gt; &lt;a href=&quot;https://t.me/zhetengsha/1354&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;#VPS #服务器 #节点 #自建 #证书 #SNI #hostname #TLS #SHA256 #自签 #指纹 #SSL&quot;&gt;#VPS #服务器 #节点 #自建 #证书 #SNI #hostname #TLS #SHA256 #自签 #指纹 #SSL&lt;/a&gt;</content:encoded></item></channel></rss>