<?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>acme.sh on 🤪C&#39;est la vie</title>
    <link>https://www.231017.xyz/tags/acme.sh/</link>
    <description>Recent content in acme.sh on 🤪C&#39;est la vie</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh</language>
    <lastBuildDate>Sun, 01 Jan 2023 14:22:16 +0000</lastBuildDate><atom:link href="https://www.231017.xyz/tags/acme.sh/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>使用 ACME.SH 申请 Google CA SSL 证书</title>
      <link>https://www.231017.xyz/posts/acme-gts-ssl/</link>
      <pubDate>Sun, 01 Jan 2023 14:22:16 +0000</pubDate>
      
      <guid>https://www.231017.xyz/posts/acme-gts-ssl/</guid>
      <description>我是这样使用 ACME.SH 申请 Google CA SSL 证书的</description>
      <content:encoded><![CDATA[<h2 id="前言">前言</h2>
<p>最近谷歌开放了自家的 GTS CA(Google Trust Services)，谷歌作为全球大厂那不得好好嫖一下！目前该服务进入了 <strong>Public Review</strong> 阶段，不再需要申请内测资格，而且支持<a href="https://github.com/acmesh-official/acme.sh">acme.sh</a>快速申请，那不就是嫖他的好日子来了吗！</p>
<h2 id="证书简介">证书简介</h2>
<p>GTS SSL 证书的特点是</p>
<ul>
<li>
<p>支持 IP 地址块持有者申请 <strong>IP</strong> <strong>地址证书</strong></p>
</li>
<li>
<p>根 CA 为<a href="https://www.globalsign.com/"><strong>GlobalSign</strong></a>，根 CA 的支持性和兼容性比<a href="https://letsencrypt.org/"><code>Let's Encrypt</code></a>好</p>
</li>
<li>
<p>支持安全性和性能更好的<strong>ECC 证书</strong></p>
</li>
<li>
<p>支持<strong>多域名</strong>、<strong>泛域名</strong>证书申请（例如<code>*.cestlavie.moe</code>）</p>
</li>
<li>
<p>有效期为 <strong>90 天</strong></p>
</li>
<li>
<p>支持的 ACME 验证方式为<code>TLS-ALPN-01</code>、<code>HTTP-01</code>、和 <code>DNS-01</code></p>
</li>
<li>
<p><strong>暂不支持</strong>邮箱验证方式申请</p>
</li>
<li>
<p><strong>暂不支持</strong>以<a href="https://zh.m.wikipedia.org/wiki/%E5%9B%BD%E9%99%85%E5%8C%96%E5%9F%9F%E5%90%8D%E7%BC%96%E7%A0%81">国际化域名编码</a>的域名</p>
</li>
</ul>
<h2 id="申请步骤">申请步骤</h2>
<h3 id="获取注册密钥">获取注册密钥</h3>
<p>打开<a href="https://shell.cloud.google.com">shell.cloud.google.com</a>，输入以下代码</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">$ gcloud beta publicca external-account-keys create <span class="c1">#创建凭据</span>
</span></span></code></pre></div><p>回显为</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">$ gcloud beta publicca external-account-keys create
</span></span><span class="line"><span class="cl">API <span class="o">[</span>publicca.googleapis.com<span class="o">]</span> not enabled on project <span class="o">[</span>&lt;projectid&gt;<span class="o">]</span>. Would you like to <span class="nb">enable</span> and retry <span class="o">(</span>this will take a few minutes<span class="o">)</span>? <span class="o">(</span>y/N<span class="o">)</span>?  y <span class="c1">#允许创建 publica API</span>
</span></span><span class="line"><span class="cl">Enabling service <span class="o">[</span>publicca.googleapis.com<span class="o">]</span> on project <span class="o">[</span>&lt;projectid&gt;<span class="o">]</span>...
</span></span><span class="line"><span class="cl">Operation <span class="s2">&#34;operations/acat.p2-&lt;projectid&gt;-&lt;uuid&gt;&#34;</span> finished successfully.
</span></span><span class="line"><span class="cl">Created an external account key
</span></span><span class="line"><span class="cl"><span class="o">[</span>b64MacKey: &lt;hmac_key&gt;
</span></span><span class="line"><span class="cl">keyId: &lt;keyid&gt;<span class="o">]</span>
</span></span></code></pre></div><p><strong>保存好输出的<code>&lt;hmac_key&gt;</code>和<code>&lt;keyid&gt;</code>，接下来要用</strong></p>
<h3 id="安装acmesh">安装<code>acme.sh</code></h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">$ curl  https://get.acme.sh <span class="p">|</span> sh -s   <span class="c1"># 请确保已安装 curl</span>
</span></span></code></pre></div><p>显示<code>Install success!</code>即为安装成功</p>
<h3 id="使用凭据注册">使用凭据注册</h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">$ acme.sh --set-default-ca --server google <span class="c1">#切换默认 CA 为 Google</span>
</span></span><span class="line"><span class="cl">$ acme.sh --server https://dv.acme-v02.api.pki.goog/directory <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span>--register-account  --accountemail &lt;Your_Email&gt; --eab-kid &lt;keyid&gt; --eab-hmac-key &lt;hmac_key&gt; <span class="c1"># 使用刚刚获取凭据注册账号</span>
</span></span></code></pre></div><h3 id="签发证书">签发证书</h3>
<ol>
<li>使用 TXT 记录手动验证 DNS</li>
</ol>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">$ acme.sh  --issue  --dns   -d yourdomain.com <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span>--yes-I-know-dns-manual-mode-enough-go-ahead-please
</span></span></code></pre></div><p>然后根据回显中</p>
<pre tabindex="0"><code>Add the following TXT record:
Domain: &#39;_acme-challenge.yourdomain.com&#39;
TXT value: &#39;&lt;TXT_value&gt;&#39;
</code></pre><p>设置 DNS 记录，完成后输入</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">$ acme.sh  --renew   -d yourdomain.com <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span>--yes-I-know-dns-manual-mode-enough-go-ahead-please
</span></span></code></pre></div><p>完成证书申请</p>
<p>显示<code>Cert success</code>即为申请成功</p>
<p>可以在<code>~/.acme.sh/yourdomain.com/</code>下获取证书</p>
<ol start="2">
<li>使用 Cloudflare API 自动验证 DNS<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup></li>
</ol>
<p>首先获取你的<code>Global API Key</code>，<a href="https://dash.cloudflare.com/profile/api-tokens">可在此处获取</a></p>
<p>然后在终端中输入</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">$ <span class="nb">export</span> <span class="nv">CF_Key</span><span class="o">=</span><span class="s1">&#39;&lt;YourGlobalAPIKey&gt;&#39;</span>
</span></span><span class="line"><span class="cl">$ <span class="nb">export</span> <span class="nv">CF_Email</span><span class="o">=</span><span class="s2">&#34;&lt;YourEmail&gt;&#34;</span>
</span></span></code></pre></div><p>接下来申请证书，输入</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">$ acme.sh --issue --dns dns_cf -d yourdomain.com <span class="c1">#单域名</span>
</span></span><span class="line"><span class="cl">$ acme.sh --issue --dns dns_cf -d *.yourdomain.com <span class="c1">#泛域名</span>
</span></span><span class="line"><span class="cl">$ acme.sh --issue --dns dns_cf -d sub1.yourdomain.com -d sub2.yourdomain.com <span class="c1">#多域名</span>
</span></span><span class="line"><span class="cl">$ acme.sh --issue --dns dns_cf -d yourdomain.com --ecc <span class="c1">#ECC 证书</span>
</span></span></code></pre></div><p>看到回显<code>Cert success</code>即为申请成功，可以在<code>~/.acme.sh/yourdomain.com/</code>下获取证书</p>
<ul>
<li>此时 Cloudflare 凭据会自动存储至<code>~/.acme.sh/account.conf</code>用于续期目的</li>
</ul>
<p>附：申请下的证书路径</p>
<p><img loading="lazy" src="chain.png" alt=""  />
</p>
<blockquote>
<p><em>文中部分信息已做脱敏处理</em></p>
</blockquote>
<hr>
<h2 id="参考文献">参考文献</h2>
<ol>
<li>
<p><a href="https://github.com/acmesh-official/acme.sh/wiki">acme.sh Wiki - github.com</a></p>
</li>
<li>
<p><a href="https://cloud.google.com/blog/products/identity-security/automate-public-certificate-lifecycle-management-via--acme-client-api">Automate Public Certificates Lifecycle Management via RFC 8555 (ACME) - google.com</a></p>
</li>
</ol>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>这里默认使用了 Cloudflare 来演示自动申请证书，详细的支持列表及申请方法可以在<a href="https://github.com/acmesh-official/acme.sh/wiki/dnsapi">这里</a>找到&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
