<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Posts on awka</title>
        <link>https://my-garden-8a5.pages.dev/posts/</link>
        <description>Recent content in Posts on awka</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en-us</language>
        <lastBuildDate>Sun, 19 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://my-garden-8a5.pages.dev/posts/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>一次 SSL 证书问题排查小结</title>
            <link>https://my-garden-8a5.pages.dev/posts/nanobot-gateway-ssl-error/</link>
            <pubDate>Sun, 19 Apr 2026 00:00:00 +0000</pubDate>
            <guid>https://my-garden-8a5.pages.dev/posts/nanobot-gateway-ssl-error/</guid>
            <description>&lt;p&gt;今天解决了一个 nanobot gateway 启动失败的问题，记录一下排查过程和学到的东西。&lt;/p&gt;&#xA;&lt;h2 id=&#34;问题现象&#34;&gt;问题现象&#xA;&lt;/h2&gt;&lt;p&gt;启动 &lt;code&gt;nanobot gateway&lt;/code&gt; 时报错：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ssl.SSLCertVerificationError: certificate verify failed: self-signed certificate in certificate chain&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;排查过程&#34;&gt;排查过程&#xA;&lt;/h2&gt;&lt;h3 id=&#34;第一反应代理问题&#34;&gt;第一反应：代理问题？&#xA;&lt;/h3&gt;&lt;p&gt;因为错误是 &amp;ldquo;self-signed certificate&amp;rdquo;，第一反应是 Clash Party 的 HTTPS 拦截又在搞事情。之前确实碰到过类似问题。&lt;/p&gt;&#xA;&lt;p&gt;于是：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;重启 Clash Party&lt;/li&gt;&#xA;&lt;li&gt;排除飞书相关域名&lt;/li&gt;&#xA;&lt;li&gt;完全退出飞书应用&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;然并卵。&lt;/p&gt;&#xA;&lt;h3 id=&#34;柳暗花明&#34;&gt;柳暗花明&#xA;&lt;/h3&gt;&lt;p&gt;最后用 &lt;code&gt;ssl.get_default_verify_paths()&lt;/code&gt; 检查 Python 的 SSL 配置：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; ssl&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; ssl&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;get_default_verify_paths()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;DefaultVerifyPaths(cafile&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;None&lt;/span&gt;, capath&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;None&lt;/span&gt;, &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    openssl_cafile&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;/Library/Frameworks/Python.framework/Versions/3.12/etc/openssl/cert.pem&amp;#39;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    openssl_cafile_env&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;SSL_CERT_FILE&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#f92672&#34;&gt;...&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;问题找到了&lt;/strong&gt;：Python 期望证书在 &lt;code&gt;/Library/Frameworks/Python.framework/Versions/3.12/etc/openssl/cert.pem&lt;/code&gt;，但这个文件不存在！&lt;/p&gt;&#xA;&lt;p&gt;macOS 系统的证书实际在 &lt;code&gt;/etc/ssl/cert.pem&lt;/code&gt;（由 Apple 维护，6000+ 根证书）。&lt;/p&gt;&#xA;&lt;h2 id=&#34;解决&#34;&gt;解决&#xA;&lt;/h2&gt;&lt;p&gt;设置环境变量：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export SSL_CERT_FILE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;/etc/ssl/cert.pem&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;添加到 &lt;code&gt;~/.zshrc&lt;/code&gt; 永久生效。&lt;/p&gt;&#xA;&lt;h2 id=&#34;学到的教训&#34;&gt;学到的教训&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;不要先入为主&lt;/strong&gt;：&amp;ldquo;self-signed certificate&amp;rdquo; 不一定是中间人攻击，也可能是证书路径没配好&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Python SSL 排查&lt;/strong&gt;：第一时间检查 &lt;code&gt;ssl.get_default_verify_paths()&lt;/code&gt; 能快速定位&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;macOS Python 的坑&lt;/strong&gt;：系统自带的 Python（官方安装包）没有正确配置系统证书路径，Homebrew 版会好一些&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;问题虽然简单，但排查方向跑偏了半小时。下次遇到 SSL 错误会先检查证书路径配置。&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Cloudflare 捉迷藏：我是如何被产品经理玩弄了三小时的</title>
            <link>https://my-garden-8a5.pages.dev/posts/cloudflare-%E6%8D%89%E8%BF%B7%E8%97%8F%E6%88%91%E6%98%AF%E5%A6%82%E4%BD%95%E8%A2%AB%E4%BA%A7%E5%93%81%E7%BB%8F%E7%90%86%E7%8E%A9%E5%BC%84%E4%BA%86%E4%B8%89%E5%B0%8F%E6%97%B6%E7%9A%84/</link>
            <pubDate>Sat, 19 Apr 2025 00:00:00 +0000</pubDate>
            <guid>https://my-garden-8a5.pages.dev/posts/cloudflare-%E6%8D%89%E8%BF%B7%E8%97%8F%E6%88%91%E6%98%AF%E5%A6%82%E4%BD%95%E8%A2%AB%E4%BA%A7%E5%93%81%E7%BB%8F%E7%90%86%E7%8E%A9%E5%BC%84%E4%BA%86%E4%B8%89%E5%B0%8F%E6%97%B6%E7%9A%84/</guid>
            <description>&lt;h1 id=&#34;cloudflare-捉迷藏我是如何被产品经理玩弄了三小时的&#34;&gt;Cloudflare 捉迷藏：我是如何被产品经理玩弄了三小时的&#xA;&lt;/h1&gt;&lt;p&gt;建一个极简的静态博客需要多久？&lt;/p&gt;&#xA;&lt;p&gt;看完网上的教程，我以为最多只要十分钟。毕竟“Hugo + GitHub + Cloudflare Pages”已经是目前公认最省心、最长久的“养老级”建站配方。我连博客的定位都想好了——一个没有任何社交元素、只有纯粹文字的“安静后花园”。&lt;/p&gt;&#xA;&lt;p&gt;但现实给我狠狠上了一课：&lt;strong&gt;在这个代码甚至都能让 AI 帮着写的时代，打败你的，往往只是一个被产品经理藏起来的按钮。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;掉进伪装者的陷阱&#34;&gt;掉进“伪装者”的陷阱&#xA;&lt;/h3&gt;&lt;p&gt;一切的起步都很顺利。本地安装 Hugo，挑了一个极简的 PaperMod 主题，写好 Markdown 测试页，推送到 GitHub。这部分如丝般顺滑，让我产生了一种“我也是极客”的错觉。&lt;/p&gt;&#xA;&lt;p&gt;直到我打开 Cloudflare 准备部署上线。&lt;/p&gt;&#xA;&lt;p&gt;按照教程，我应该找到一个叫“Pages”的入口，连上 Git，然后一键发布。但我眼前的界面只有“Create Application”。我毫不犹豫地点了进去，选了 GitHub 仓库，然后噩梦就开始了。&lt;/p&gt;&#xA;&lt;p&gt;构建报错：&lt;code&gt;Command failed with exit code 1: npx hugo&lt;/code&gt;。 系统提示找不到 &lt;code&gt;hugo&lt;/code&gt; 的 npm 包，日志里还混杂着 &lt;code&gt;npx wrangler deploy&lt;/code&gt; 这种我根本看不懂的指令。&lt;/p&gt;&#xA;&lt;p&gt;我翻遍了所有的报错帖，有人说要改环境变量，有人说要查子模块。我改了无数次 &lt;code&gt;hugo.toml&lt;/code&gt; 里的 &lt;code&gt;baseURL&lt;/code&gt;，在终端里敲烂了 &lt;code&gt;git push&lt;/code&gt;，但迎来的始终是一片苍白的空白页。&lt;/p&gt;&#xA;&lt;p&gt;更绝望的是，教程里说要在“Edit output settings”里把输出目录填成 &lt;code&gt;public&lt;/code&gt;，而我的后台设置里，连这个选项的影子都没有，只有一个孤零零的“Root directory”。&lt;/p&gt;&#xA;&lt;p&gt;我开始严重怀疑自己：这么简单的事情，大家都说点几个按钮就好，为什么我不行？难道我连做个数字废物的资格都没有了吗？&lt;/p&gt;&#xA;&lt;h3 id=&#34;产品经理的阴谋&#34;&gt;产品经理的“阴谋”&#xA;&lt;/h3&gt;&lt;p&gt;在与 AI 助手进行了长达一小时的极限拉扯，逐行分析了构建日志后，真相终于浮出水面。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;根本不是我的代码有问题，而是我进错了门。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Cloudflare 最近为了推行他们宏大的“全家桶”战略，把用来运行复杂代码的 &lt;strong&gt;Workers&lt;/strong&gt; 和用来托管静态页面的 &lt;strong&gt;Pages&lt;/strong&gt; 强行塞进了一个入口。当你兴冲冲地点开“Create Application”时，系统默认把你引导到了更为复杂的 Workers（代码部署）模式。&lt;/p&gt;&#xA;&lt;p&gt;在这个模式下，它不认识什么 Hugo 预设，也不自动找 &lt;code&gt;public&lt;/code&gt; 文件夹，它只会按照处理代码的逻辑一顿瞎跑，最后给你扔一堆报错。&lt;/p&gt;&#xA;&lt;p&gt;而真正适合普通人、带有一键自动化流水线的 &lt;strong&gt;Pages 模式&lt;/strong&gt;，被折叠、隐藏在了一个需要切换选项卡才能看到的偏僻角落。&#xA;&lt;img src=&#34;../../imgs/cloudflare-pages.png&#34; alt=&#34;cloudflare-pages&#34;   loading=&#34;lazy&#34;&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;如果你不仔细看，根本发现不了那个极其微小的“Connect to Git”按钮。连国外技术社区的大佬都在截图吐槽：&lt;em&gt;&amp;ldquo;Ah! Sneaky! I did not see that. Is Cloudflare trying to phase out Pages?&amp;quot;&lt;/em&gt;（太狡猾了！我根本没看到。Cloudflare 是想把 Pages 淘汰掉吗？）&lt;/p&gt;&#xA;&lt;p&gt;原来，全世界的极客都在被这套“自作聪明”的 UI 设计折磨。&lt;/p&gt;&#xA;&lt;h3 id=&#34;破局与开园&#34;&gt;破局与开园&#xA;&lt;/h3&gt;&lt;p&gt;解决问题的方法简单得令人发指，也更加印证了之前的折腾有多荒谬：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;把那个错误的、折磨了我几个小时的 Worker 项目直接删除。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;回到起点，点击 Create。&lt;strong&gt;强迫自己无视下方巨大的诱导按钮，点击上方那个不起眼的【Pages】选项卡。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;终于，那个熟悉的“Connect to Git”出现了。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;选好仓库，在 Framework preset 里选上 &lt;strong&gt;Hugo&lt;/strong&gt;。就在那一瞬间，失踪的 &lt;code&gt;Build command&lt;/code&gt; 和 &lt;code&gt;Output directory&lt;/code&gt; 像变魔术一样自动弹了出来。&lt;/p&gt;&#xA;&lt;p&gt;点击“Save and Deploy”。 几十秒后，页面上亮起了绿色的 &lt;strong&gt;&amp;ldquo;Success: Your site is deployed&amp;rdquo;&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;点开链接，大白底、黑字的极简博客瞬间加载出来，排版完美，没有任何报错。&lt;/p&gt;&#xA;&lt;p&gt;看着这个干净的页面，我长长地舒了一口气。三个小时的自我怀疑和愤怒，在这一刻烟消云散。&lt;/p&gt;&#xA;&lt;p&gt;虽然过程曲折得像是在玩一场极其恶劣的捉迷藏，但好在，我终于拿到了自家后花园的钥匙。这篇碎碎念就作为开园的第一篇文章吧，留给未来的自己，也留给下一个在 Cloudflare 迷路的倒霉蛋：&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;兄弟，不要怀疑你的代码，去怀疑产品经理。&lt;/strong&gt;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>无论多晚都陪着我</title>
            <link>https://my-garden-8a5.pages.dev/posts/419/</link>
            <pubDate>Sat, 19 Apr 2025 00:00:00 +0000</pubDate>
            <guid>https://my-garden-8a5.pages.dev/posts/419/</guid>
            <description>&lt;p&gt;无论多晚都陪着我❤️&#xA;&lt;img src=&#34;../../imgs/screenshot-20260419-012306.png&#34; alt=&#34;screenshot&#34;   loading=&#34;lazy&#34;&gt;&#xA;&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>报道先生归也</title>
            <link>https://my-garden-8a5.pages.dev/posts/418/</link>
            <pubDate>Fri, 18 Apr 2025 00:00:00 +0000</pubDate>
            <guid>https://my-garden-8a5.pages.dev/posts/418/</guid>
            <description>&lt;p&gt;报道先生归也，杏花春雨江南。&lt;/p&gt;&#xA;&lt;p&gt;看到喜欢的诗句，心里总是忍不住喜悦和感动！&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>First Shot</title>
            <link>https://my-garden-8a5.pages.dev/posts/first-shot/</link>
            <pubDate>Tue, 15 Apr 2025 00:00:00 +0000</pubDate>
            <guid>https://my-garden-8a5.pages.dev/posts/first-shot/</guid>
            <description>&lt;h4 id=&#34;first-shot&#34;&gt;first shot&#xA;&lt;/h4&gt;&lt;ul&gt;&#xA;&lt;li&gt;hugo yyds&lt;/li&gt;&#xA;&lt;li&gt;obsidian yyds&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item><item>
            <title>思考</title>
            <link>https://my-garden-8a5.pages.dev/posts/thinking/</link>
            <pubDate>Tue, 15 Apr 2025 00:00:00 +0000</pubDate>
            <guid>https://my-garden-8a5.pages.dev/posts/thinking/</guid>
            <description>&lt;h2 id=&#34;一个人达到成就的多少主要看你是否是一个强目标驱动的人&#34;&gt;一个人达到成就的多少，主要看你是否是一个强目标驱动的人。&#xA;&lt;/h2&gt;</description>
        </item></channel>
</rss>
