<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>CA on CX 的博客</title><link>https://blog.imcaoxuan.cn/tags/ca/</link><description>Recent content in CA on CX 的博客</description><generator>Hugo</generator><language>zh-CN</language><copyright>imcaoxuan.cn</copyright><lastBuildDate>Fri, 23 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.imcaoxuan.cn/tags/ca/index.xml" rel="self" type="application/rss+xml"/><item><title>Docker 信任自签名 CA 证书</title><link>https://blog.imcaoxuan.cn/posts/2026-10-23-docker-trust-custom-ca/</link><pubDate>Fri, 23 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/2026-10-23-docker-trust-custom-ca/</guid><description>&lt;p&gt;Docker 使用私有 CA（例如 step-ca）签发的 HTTPS 证书时，需要区分 &lt;strong&gt;Docker Engine 拉取镜像&lt;/strong&gt; 和 &lt;strong&gt;容器内应用访问 HTTPS&lt;/strong&gt; 两种场景。它们的证书信任库不一定相同。&lt;/p&gt;
&lt;h2 id="一docker-engine-信任私有-ca"&gt;一、Docker Engine 信任私有 CA&lt;/h2&gt;
&lt;p&gt;适用于 &lt;code&gt;docker login&lt;/code&gt;、&lt;code&gt;docker pull&lt;/code&gt;、&lt;code&gt;docker push&lt;/code&gt; 访问私有镜像仓库。&lt;/p&gt;
&lt;h3 id="仅信任指定-registry推荐"&gt;仅信任指定 Registry（推荐）&lt;/h3&gt;
&lt;p&gt;假设 Registry 地址为 &lt;code&gt;registry.example.com:5000&lt;/code&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo mkdir -p /etc/docker/certs.d/registry.example.com:5000
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo cp root_ca.crt /etc/docker/certs.d/registry.example.com:5000/ca.crt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;目录名称应与实际访问的 Registry 主机名及端口一致；默认 HTTPS 443 端口通常可省略。&lt;code&gt;ca.crt&lt;/code&gt; 应为 PEM 格式的 CA 证书，而不是私钥。&lt;/p&gt;
&lt;p&gt;验证：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker login registry.example.com:5000
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="ubuntu--debian-宿主机全局信任"&gt;Ubuntu / Debian 宿主机全局信任&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo cp root_ca.crt /usr/local/share/ca-certificates/my-root-ca.crt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo update-ca-certificates
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Linux 上 Docker 通常会使用宿主机的系统 CA 信任库。通常不必重启 Docker；如果仍未生效，可检查 Docker 日志及证书配置，再决定是否重启（重启可能影响运行中的容器）。&lt;/p&gt;</description></item></channel></rss>