利用acme.sh 申请 Google 免费证书

1.Google API权限准备

获取 EAB 密钥 ID 和 HMAC

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

googleapi

或者直接在下一步的 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 帐号没有有效期。

2.申请证书

默认以 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_ID 和 CF_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"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/20547.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【基础架构篇十五】《DeepSeek权限控制:RBAC+ABAC混合鉴权模型》

某天深夜,电商平台运营总监误触按钮,把价值千万的优惠券设置成全员可领。当你想追究责任时,却发现系统日志写着"操作人:admin"。这血淋淋的事故告诉我们:权限控制不是选择题,而是生死攸关的必答题。本文将深挖DeepSeek的RBAC+ABAC混合鉴权体系,看看他们如何做…

Kafka

Kafka概念 https://kafka.apache.org/ Kafka是一种高吞吐量的分布式发布订阅消息系统,使用 Scala 语言编写。 producer通过网络发送消息到Kafka集群,然后consumer来进行消费,如下图: 服务端(brokers)和客户端(producer、consumer…

『大模型笔记』Ollama环境变量大全!

『大模型笔记』Ollama环境变量大全! 文章目录 一. Ollama环境变量大全!1. 命令方式查看2. 源码整理二. 参考文献一. Ollama环境变量大全! 1. 命令方式查看 Ollama常用的环境变量ollama help serve2. 源码整理 从源代码中整理了这份文档,希望有缘人能发现它。变量默认值说明…

系统架构设计基础

1. 软件架构的概念 软件架构,即软件体系结构,为软件系统提供一个结构、行为和属性的高级抽象。 软件架构作用: 1)项目干系人进行交流的手段 2)可传递和复用的模型,通过研究软件架构可预测软件的质量 3&…

OSI 参考模型和 TCP/IP 参考模型

数据通信是很复杂的,很难在一个协议中完成所有功能。因此在制定协议时经常采用的思路是将复杂的数据通信功能由若干协议分别完成,然后将这些协议按照一定的方式组织起来。最典型的是采用分层的方式来组织协议,每一层都有一套清晰明确的功能和…

揭秘区块链隐私黑科技:零知识证明如何改变未来

文章目录 1. 引言:什么是零知识证明?2. 零知识证明的核心概念与三大属性2.1 完备性(Completeness)2.2 可靠性(Soundness)2.3 零知识性(Zero-Knowledge) 3. 零知识证明的工作原理4. 零…

解锁机器学习核心算法 | 线性回归:机器学习的基石

在机器学习的众多算法中,线性回归宛如一块基石,看似质朴无华,却稳稳支撑起诸多复杂模型的架构。它是我们初涉机器学习领域时便会邂逅的算法之一,其原理与应用广泛渗透于各个领域。无论是预测房价走势、剖析股票市场波动&#xff0…

Visual Studio Code支持WSL,直接修改linux/ubuntu中的文件

步骤1 开始通过 WSL 使用 VS Code | Microsoft Learn 点击远程开发扩展包。 步骤2 Remote Development - Visual Studio Marketplace 点击install, 允许打开Visual Studio Code。 步骤3 共有4项,一齐安装。 步骤4 在WSL Linux(Ubuntu)中&#xf…

ShenNiusModularity项目源码学习(9:项目结构)

ShenNiusModularity源码主要有11个project(其实还有officialweb、test两个文件夹,大致有4、5个project,但看着跟主要项目代码没太大关系,暂时不管),这11个project的依赖关系如下图所示,其中最下…

Rook-ceph(1.92最新版)

安装前准备 #确认安装lvm2 yum install lvm2 -y #启用rbd模块 modprobe rbd cat > /etc/rc.sysinit << EOF #!/bin/bash for file in /etc/sysconfig/modules/*.modules do[ -x \$file ] && \$file done EOF cat > /etc/sysconfig/modules/rbd.modules &l…

力扣 66.加一 (Java实现)

题目分析 给定一个数组&#xff0c;可以组成一个数字&#xff0c;将数字加一后&#xff0c;返回新数组 思路分析 首先跟着题目思路走&#xff0c;将数组按位*10可以得到数字&#xff0c;再加一&#xff0c;加一后按位%10&#xff0c;可以得到新的数组。但是此处数字会过大&…

vue3-03初学vue3中的配置项setup(Composition API (组合API组件中所用到的:数据、方法等,均要配置在setup中)

1.关于setup Vue3.0中一个新的配置项&#xff0c;值为一个函数.setup是所有Composition API (组合API)“表演的舞台”m组件中所用到的:数据、方法等等&#xff0c;均要配置在setup中。 2..setup函数使用 setup函数的两种返回值 1.若返回一个对象&#xff0c;则对象中的属性、…

docker 安装的open-webui链接ollama出现网络错误

# 故事背景 部署完ollama以后&#xff0c;使用谷歌浏览器的插件Page Assist - 本地 AI 模型的 Web UI 可以比较流畅的使用DeepSeek&#xff0c;但是只局限于个人使用&#xff0c;想分享给更多的小伙伴使用&#xff0c;于是打算使用open-webui 来管理用户&#xff0c;经官网推荐…

【进阶】Java设计模式详解

java注解 什么是注解&#xff1f; java中注解(Annotation)&#xff0c;又称java标注&#xff0c;是一种特殊的注释。 可以添加在包&#xff0c;类&#xff0c;成员变量&#xff0c;方法&#xff0c;参数等内容上面&#xff0c;注解会随同代码被编译到字节码文件中&#xff0…

观望=没有!

“兄弟&#xff0c;Java现在学还有前途吗&#xff1f;”“前端是不是饱和了&#xff1f;”——每天打开私信&#xff0c;这类问题能占大半。我的回复永远只有一句&#xff1a; “如果你非要等我说‘行’才敢行动&#xff0c;那答案已经不重要了。” # 技术人总在纠结“能不能”…

百度搜索融合 DeepSeek 满血版,开启智能搜索新篇

百度搜索融合 DeepSeek 满血版&#xff0c;开启智能搜索新篇 &#x1f680; &#x1f539; 一、百度搜索全量接入 DeepSeek &#x1f539; 百度搜索迎来重要升级&#xff0c;DeepSeek 满血版全面上线&#xff01;&#x1f389; 用户在百度 APP 搜索后&#xff0c;点击「AI」即…

【MySQL系列文章】Linux环境下安装部署MySQL

前言 本次安装部署主要针对Linux环境进行安装部署操作,系统位数64 getconf LONG_BIT 64MySQL版本&#xff1a;v5.7.38 一、下载MySQL MySQL下载地址&#xff1a;MySQL :: Download MySQL Community Server (Archived Versions) 二、上传MySQL压缩包到Linuxx环境&#xff0c…

RedisTemplate存储含有特殊字符解决

ERROR信息: 案发时间: 2025-02-18 01:01 案发现场: UserServiceImpl.java 嫌疑人: stringRedisTemplate.opsForValue().set(SystemConstants.LOGIN_CODE_PREFIX phone, code, Duration.ofMinutes(3L)); // 3分钟过期作案动机: stringRedisTemplate继承了Redistemplate 使用的…

C++--STL库-List

目录 1.list 的基本使用 1.1 创建和初始化 1.2. 插入元素 1.3. 删除元素 1.4. 访问元素 1.5 遍历 1.6 总结 list是C标准库&#xff08;STL&#xff09;中的双向链表容器&#xff0c;属于<list>头文件。 它的特点是&#xff1a; 动态大小&#xff1a;可以随时插入…

C语言——深入理解指针(3)

文章目录 字符指针变量数组指针变量数组指针变量是什么&#xff1f;数组指针变量怎么初始化 二维数组传参的本质函数指针变量函数指针变量的创建函数指针变量的使用两段关于函数的有趣代码typedef关键字 函数指针数组转移表第一种写法&#xff1a;第二种写法&#xff08;函数指…