惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Security Latest
Security Latest
P
Palo Alto Networks Blog
AWS News Blog
AWS News Blog
NISL@THU
NISL@THU
T
Threatpost
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Latest news
Latest news
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
J
Java Code Geeks
P
Privacy International News Feed
阮一峰的网络日志
阮一峰的网络日志
S
Schneier on Security
博客园 - 聂微东
Project Zero
Project Zero
美团技术团队
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Scott Helme
Scott Helme
I
Intezer
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
H
Hacker News: Front Page
S
Security @ Cisco Blogs
博客园 - 司徒正美
O
OpenAI News
Last Week in AI
Last Week in AI
L
LINUX DO - 热门话题
酷 壳 – CoolShell
酷 壳 – CoolShell
SecWiki News
SecWiki News
月光博客
月光博客
S
Security Affairs
The GitHub Blog
The GitHub Blog
P
Privacy & Cybersecurity Law Blog
S
Secure Thoughts
V
V2EX
S
Securelist
F
Fortinet All Blogs
W
WeLiveSecurity
D
Docker
博客园 - 三生石上(FineUI控件)
Simon Willison's Weblog
Simon Willison's Weblog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
Cyber Attacks, Cyber Crime and Cyber Security
V
Visual Studio Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Webroot Blog
Webroot Blog
Engineering at Meta
Engineering at Meta

atpX

自建 S3 兼容对象存储服务 Garage 听风的歌 偶尔是深夜就好了 新玩具 AirPods Pro 3 公交车上的时间 从 WHOIS 到 RDAP 通过 WireGuard 访问 NFS 共享文件 自建音乐串流服务探索 我停止了探索 Fediverse 互联网背景噪音 我的数字生活降级 小城与确定性的墙 一只特立独行的猪 Fediverse 与社交 承认的勇气 mediaX - 轻量书影音记录管理工具 我的博客写作流程 网站新增 Misc 页面 擅长对线的鲍勃 在 Chroot 环境下使用 Rsync 同步 再见 JavaScript 当我玩博客时我在玩什么 为什么我的博客没有友链页面 小熊猫与大熊猫 (HDR 照片测试) 是时候为网站开启 HTTP/3 支持了吗 使用 AdGuard Home 搭建自用 DoH 服务 谈谈读书与消遣 2023 年终总结 西安两日游 从 AirPods「升级」到 EarPods Docker 搭建去中心化的微博客平台 Mastodon 聊聊 iPhone 15 Pro 使用感受 能否将 TOTP 二次验证存放在密码管理器里 认识史蒂夫·乔布斯 与“锤哥”克里斯·海姆斯沃斯一起养生 逃离爆炸的信息 你想活出怎样的人生 重温《龙珠》动画 为什么关闭评论 从域名注册商到 DNS 服务,找到自己的组合 如何提高用户网页阅读体验 从 Typecho 迁移到 Hugo 个人博客的最终归宿是静态网站吗 我选择了放弃 jQuery 关于我的小破站折腾速度优化这件事 记一次家庭网络折腾 贴一些 SmokePing 记录 我的域名邮箱选择 不存在的语录 Typecho 评论验证插件 CaptchaPlus 谈谈写字这件事 新的网站 Logo 探索 曲线解决 Typecho 图片占位抖动问题 自建 vaultwarden / bitwarden_rs 密码管理器 使用 Plausible 自建网站流量统计分析工具 如何优雅地徒手剥开火腿肠 简单的集中隔离生活记录 新玩具 M2 MacBook Air Docker 搭建去中心化的微博客平台 Misskey 搭建 Lsky Pro 兰空图床 折腾树莓派系统的一天 我的吉卜力之旅 使用 Uptime Kuma 自建服务器/网站在线率监控 Spartan Host Review - Best Hosting & Service Support Debian 下 Nginx 配合 Fail2Ban 减少恶意扫描和攻击 升级 Typecho 到最新开发版本 v1.2.0 Linux rm 命令详解 Debian 系统安装 Docker 教程 BandwagonHost - Reliable Blog and Business VPS Hosting 使用 Isso 为 Hugo/Hexo 等静态网站添加评论功能 推荐 5 款免费开源的网站流量分析统计工具 搭建 Shynet 网站流量统计分析工具 聊聊 DDoS 攻击那些事 Hugo 使用 Fancybox 实现图片灯箱/放大功能 从 Debian 10 升级到 Debian 11 教程 使用 Umami 自建网站流量统计分析工具 Linux 一次执行多个命令的 3 种方式 Typecho 修改永久链接后旧链接 301 跳转到新链接 从不同需求推荐几家稳定可靠的 VPS 服务商 Build EchoIP service with Docker 浅谈一下这些年折腾过的 VPS 单线复用解决一根网线同时 IPTV 和宽带问题 不完全吃灰的树莓派 开发一个自己的 Telegram Bot 使用 Nginx 实现 TCP 四层反向代理 画画真难 我读村上春树 使用 acme.sh 自动签发和更新证书 卡拉马佐夫式悲剧 安装 File Browser 轻量网盘工具 新玩具树莓派到手 Linux 定时自动备份数据到 OneDrive/Google Drive 记一次服务器崩溃 使用 rsync 同步文件 短信的消失 幻灭的艺术家 新玩具戴尔 S2721DGF 开箱 蝴蝶 用 Docker 整合 SeafilePro 搭建私人云盘 搭建自己的 kms 服务器
使用 acme.sh 申请 Google 公共证书
ATP · 2022-04-19 · via atpX

Google Cloud 在三月底也推出了通过 Automatic Certificate Management Environment(也就是我们常说的 acme 协议)实现的自动化证书管理服务。这也意味着我们现在可以免费申请到和 Let’s Encrypt 一样的 Google 公共证书了,主要特性如下:

  • 支持多域名以及通配符证书(通配符证书目前需要通过 DNS 验证)
  • 支持申请 ECC 和 RSA 证书
  • 支持申请 IP 证书(目前只能该 IP Block 的所有者进行验证)
  • 证书最长有效期 90 天
  • 不支持 IDN 域名
  • OCSP 地址为 ocsp.pki.goog,有国内服务器节点

acme.sh 更新也很快,第二天就进行了增加了对 Google Public CA 的支持,下面就简单分享下使用 acme.sh 申请 Google 公共证书的流程。

注:虽然 OCSP 在国内可用,但国内访问不了 Google CA 的 ACME Server,因此暂时无法在国内服务器上申请签发该证书。

我前面写过一篇文章 使用acme.sh自动签发和更新证书,如果你需要了解 acme.sh 的使用或者申请 Let’s Encrypt 证书的话可以参考一下。

开通 Google Public CA API

首先你需要拥有一个 Google Cloud Platform(GCP)账号。

申请内测功能

Updated 2023-12-16: Google Public CA 已于 2023 年 5 月结束内测,所有拥有 GCP 账号的用户都可以免费使用 GTS ACME API,不再需要申请资格,可以跳过这一步。


目前(2022 年 4 月 15 日)仍处于内测阶段,需要填写一个表单申请该功能,否则直接申请的话会提示错误:

(gcloud.alpha.publicca.external-account-keys.create) NOT_FOUND: Method not found.

其中需要填写你的 Google Cloud Project ID *,可以在你的控制台面板菜单栏左上角点击你的项目名查看:

gcp-get-project-id

我在提交一天后也没收到消息,看网友都是几小时就收到了…就又提交了一次,最后花了三天才收到了开通成功的邮件提醒:

gcp-public-certificate-authority-api-mail

获取 EAB 密钥 ID 和 HMAC

  1. 登录你的 GCP 控制台面板,进入 Public Certificate Authority API 管理页面(https://console.cloud.google.com/apis/library/publicca.googleapis.com)点击启动
gcp-public-certificate-authority-api

或者直接在下一步的 Cloud Shell 中使用下面的命令启动也可以:

gcloud services enable publicca.googleapis.com
  1. 点击右上角的菜单栏激活 Cloud Shell,输入下面内容选中项目,如果你只有一个项目的话可以跳过这步,会自动设置为唯一项目:
gcloud config set project [project ID]

或者先使用下面的命令创建一个项目然后再选择该项目:

gcloud projects create [project ID]
gcloud config set project [project ID]
  1. 获取 EAB 密钥 ID 和 HMAC:
gcloud publicca external-account-keys create

中途弹窗点击授权之后会返回下列格式的信息,记录下来后面会用到:

Created an external account key
[b64MacKey: xxxxxxxxxxxxxxxxxxxxxxx
keyId: xxxxxxxxxxxxxxx]

* 获取的 EAB 密钥 7 天内有效,超过 7 天未使用该密钥会失效,注册的 ACME 帐号没有有效期。

申请证书

默认以 root 用户进行操作演示。

安装 acme.sh

curl  https://get.acme.sh | sh

若后面出现 command not found,则需要手动执行以下命令:

source ~/.bashrc

签发证书

这里以使用 Cloudflare 的 API 为例,通过 DNS 验证申请 Apex 域名和通配符(example.com 和 *.example.com)证书。

  1. 获取 Cloudflare API,可以自己选择全局 API 还是单域 API,建议创建单域 API 并限制访问 IP 以提高安全性,获取到 API 后注意保存,然后导入:
export CF_Token="xxxxxxxxxxxxxxxxxxxxxxxx"
export CF_Account_ID="xxxxxxxxxxxxxxxxxxxxxxxx"
export CF_Zone_ID="xxxxxxxxxxxxxxxxxxxxxxxx"

其中 CF_Token 为你获取到的 API 密钥,CF_Account_IDCF_Zone_ID 可以在你域名概述页面侧边栏的 API 分栏看到。

  1. 向 Google Public CA 注册 ACME 帐号:
acme.sh  --register-account -m [邮箱] --server google \
    --eab-kid [申请到的 keyId] \
    --eab-hmac-key [申请到的 b64MacKey]

我在第一次注册的时候提示错误:

Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6

无法解析 host,想了下应该是我的 acme.sh 是很久以前安装的,没有开启自动更新,使用 acme.sh --upgrade 命令更新一下就好了,或者将上面的 --server google 改成 --server https://dv.acme-v02.api.pki.goog/directory 手动指定服务器。

  1. 设置默认 CA:
acme.sh --set-default-ca --server google
  1. 签发 RSA 证书:
acme.sh --issue --dns dns_cf -d example.com -d *.example.com --keylength 2048

* 签发 ECC 证书:

acme.sh --issue --dns dns_cf -d example.com -d *.example.com --keylength ec-256
  1. 最后将证书安装到 Nginx 下:
acme.sh --install-cert -d example.com \
--key-file       /path/to/ssl/private.key  \
--fullchain-file /path/to/ssl/fullchain.pem \
--capath         /path/to/ssl/ca.pem  \
--reloadcmd      "service nginx reload"

* 安装 ECC 证书:

acme.sh --install-cert -d example.com --ecc \
--key-file       /path/to/ssl/ecc_private.key  \
--fullchain-file /path/to/ssl/ecc_fullchain.pem \
--capath         /path/to/ssl/ecc_ca.pem  \
--reloadcmd      "service nginx reload"

最后贴一张 Google 公共证书的证书路径:

google-public-ca-path

体验下来挺不错的,如果将来国内 OCSP 节点不会被搞的话就更好了。