IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Rocky(Centos)使用acme.sh申请安装Let‘s Encrypt泛域名ECC证书(阿里DNS) -> 正文阅读

[系统运维]Rocky(Centos)使用acme.sh申请安装Let‘s Encrypt泛域名ECC证书(阿里DNS)

现代的浏览器开始有将 https 访问作为默认访问方式的倾向,因此需要将网站配置为https 访问。

Let’s Encrypt 组织提供免费的 TLS 加密证书,用于协助web服务器实现https协议。而 acme.sh 脚本便是可以实现从 Let’s Encrypt 自动化申请、续期 TLS 证书的强力工具。

永久链接:http://blog.ryjer.com/posts/a1993e0126.html

Debian 10、OMV 5、CentOS、RHEL、Rocky和 SUSE 等服务器linux 发行版都适用。

1、目的

使用 acme.sh 脚本为 web服务器(Nginx)申请 ECC TLS 证书,实现网站的 https 加密访问。

2、过程

参考文档

github acme.sh官方文档

1. 安装 acme.sh

安装很简单, 一个命令。注意更改最后的my@example.com为你自己的邮箱

curl  https://get.acme.sh | sh -s email=my@example.com

官网的文档上说会自动创建一个 alias,但我这里没有效果。所以手动创建一个,运行以下命令:

alias acme.sh=~/.acme.sh/acme.sh

安装过程也会同时创建一个 cron 定时任务,可以使用 crontab -l 命令查看,会多出来如下的一行(通常分钟数是随机的)

32 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

上面这个表示在每天 0:32 执行一次


2021-08-07 更新

acme.sh 官方宣布将在 2021-08-01 后将默认CA 证书申请机构从 Let’s Encrypt 转变为 ZeroSSL(估计是被收购了)。详情见 Change default CA to ZeroSSL · acmesh-official/acme.sh Wiki (github.com)

ZeroSSL 也可以申请免费的 90天证书并自动需求,但是需要注册 ZeroSSL 账号后才能使用。但是公告了提供了继续保持原有 CA 机构为 Let’s Encrypt 的方法,使用以下命令将默认CA (证书颁发机构)改为 Let’s Encrypt,且 acme 自动升级后仍将保存该默认设置

acme.sh --set-default-ca  --server  letsencrypt

如果你想改用 ZeroSSL的话,请参考这篇官方文档: ZeroSSL.com CA · acmesh-official/acme.sh Wiki (github.com)

注意,这需要你去注册一个 ZeroSSL 的账户,注册使用是免费的


2. 开启自动升级

如果你不想手动升级, 可以开启自动升级,这样以后就不用再管了

acme.sh  --upgrade  --auto-upgrade

你也可以随时关闭自动更新

acme.sh --upgrade  --auto-upgrade  0

3. 生成证书

家用宽带是没有80端口的,所以选择使用 DNS服务商(我是阿里) 提供的 API 进行自动添加记录验证的方式申请。

其他的DNS服务商可以参考这个页面 github acme.sh 官方dnsapi 参考文档

下面的是阿里云DNS的环境变量,值是我胡乱打的,注意改为你的值

export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"

然后,就可以使用以下命令申请域名了。这里假定域名是 domain.com 。这里第二个 -d 参数为 *.domain.com,表示申请一个泛域名证书(没错,这两个域名只会生成一个证书)。默认会申请 RSA算法 证书,我这里用 -k ec-384 参数改为申请 384位ECC算法 证书。

acme.sh --issue --dns dns_ali -d domain.com -d *.domain.com -k ec-384

4. copy/安装 证书

生成的证书会存放在当前用户的 ~/.acme.sh 文件夹内。由于acme.sh 脚本会不断更新,该文件夹内的布局也会不断改变。显然直接从该文件夹内拷贝证书出来是一种很不可靠的行为,因为你无法确定下一次证书所在的具体路径。

因此,acme.sh专门提供了复制/安装证书的方法,并且不建议用户直接去 ~/.acme.sh 文件夹内复制证书使用。

根据不同的web服务器,有不同的命令。最为常见的服务器是 Apache httpdNginx,我这里使用的是 Nginx,由于是ECC证书,需要额外的 --ecc 参数

Nginx example:

acme.sh --install-cert -d domain.com --ecc \
--key-file       /etc/nginx/ssl/domain.com/domain.com.key  \
--fullchain-file /etc/nginx/ssl/domain.com/fullchain.cer \
--reloadcmd     "service nginx force-reload"

5. 更新证书

目前证书在 60 天以后会自动更新,你无需任何操作。今后有可能会缩短这个时间,不过都是自动的,你不用关心。

当然,你也可以手动更新ECC证书

acme.sh --renew -d domain.com --force --ecc

如果不是ECC证书的话,不需要--ecc参数

acme.sh --renew -d domain.com --force

这些配置完后,就不用再管了,可以忘掉这些事了。

提示:acme.sh 官方对申请证书的频率有限制,子域名好像每周最多4次。所以不要频繁乱申请!

6. 吊销证书

如果运气不好,证书文件泄露了。你需要吊销当前的ECC证书,对应命令为

acme.sh --revoke -d domain.com --ecc

不是ECC证书则不需要 --ecc参数

acme.sh --revoke -d domain.com
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-20 15:29:39  更:2021-08-20 15:30:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:27:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码