Acme 脚本申请证书-摘录

Acme 脚本申请证书,是我们用到的最常见的一种证书的申请方式,它有很多的申请方法,大家只需要找到一种适合自己的也就好了。

不管用下面的何种方式申请,都需要安装 Acme,有一部分的申请场景需要用到相关的插件,所以我们需要提前安装。

下面环境的安装方式,大家根据自己的系统选择命令安装就好了。

apt update -y          #Debian/Ubuntu 命令
apt install -y curl    #Debian/Ubuntu 命令
apt install -y socat    #Debian/Ubuntu 命令
yum update -y          #CentOS 命令
yum install -y curl    #CentOS 命令
yum install -y socat    #CentOS 命令

安装 Acme 脚本:

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

重要申明:


2021 年 6 月 17 日更新:

从 acme.sh v 3.0.0 开始,acme.sh 使用 Zerossl 作为默认 ca,您必须先注册帐户(一次),然后才能颁发新证书。

具体操作步骤如下:

1、安装 Acme 脚本之后,请先执行下面的命令(下面的邮箱为你的邮箱)
~/.acme.sh/acme.sh --register-account -m xxxx@xxxx.com

申请方式一:80 端口空闲的验证申请

如果你还没有运行任何 web 服务, 80 端口是空闲的, 那么 Acme.sh 还能假装自己是一个 WebServer, 临时监听在 80 端口, 完成验证

curl https://get.acme.sh | sh
systemctl stop nginx
~/.acme.sh/acme.sh --register-account -m qzongxin@gmail.com
~/.acme.sh/acme.sh  --issue -d test.xrayssr.com   --standalone
~/.acme.sh/acme.sh --installcert -d test.xrayssr.com --key-file /root/private.key --fullchain-file /root/cert.crt

若vps已经开启了Nginx服务,则需要停止Nginx,然后在运行上述代码,因为Nginx会占用80端口

systemctl stop nginx

申请方式二:Nginx 的方式验证申请

这种方式需要你的服务器上面已经部署了 Nginx 环境,并且保证你申请的域名已经在 Nginx 进行了 conf 部署。(被申请的域名可以正常被打开)

~/.acme.sh/acme.sh --issue  -d mydomain.com   --nginx

申请方式三:http 的方式验证申请

这种方式需要你的服务器上面已经部署了网站环境。(被申请的域名可以正常被打开)

原理:Acme 自动在你的网站根目录下放置一个文件, (这个文件可以被互联网访问)来验证你的域名所有权,完成验证. 然后就可以生成证书了.

实例代码:(后面的路径请更改为你的 网站根目录 绝对路径 )

~/.acme.sh/acme.sh  --issue  -d mydomain.com -d www.mydomain.com  --webroot  /home/wwwroot/mydomain.com/

申请方式四:DNS 验证的方式申请证书

这种方式的好处是, 你不需要任何服务器, 不需要任何公网 ip, 只需要 dns 的解析记录即可完成验证. 坏处是,如果不同时配置 Automatic DNS API,使用这种方式 acme.sh 将无法自动更新证书,每次都需要手动再次重新解析验证域名所有权。

Acme.sh 目前支持 cloudflare, dnspod, cloudxns, godaddy 以及 ovh 等数十种解析商

该方式可以申请多域名、泛域名证书,达到很多域名可以共用一张证书的目的。

步骤如下:

1:获取 Cloudflare API 令牌

在域名概述页(右下角)找到“获取 API 密钥“,如下图:

2:安装 ACME

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

3:设置 Cloudflare API 令牌

export CF_Key="4f9794c701b6e27884f0da0bab6454de07552"
export CF_Email="bozai@v2rayssr.com"

4:验证 DNS 并申请证书

若是DNS验证申请不下来,请尝试使用下面的 Web 验证的方式申请证书

更改下面的域名为你自己的域名

~/.acme.sh/acme.sh --issue --dns dns_cf -d xrayssr.com -d *.xrayssr.com
mkdir /root/cert
~/.acme.sh/acme.sh --installcert -d xrayssr.com --key-file /root/cert/private.key --fullchain-file /root/cert/cert.crt
~/.acme.sh/acme.sh --upgrade --auto-upgrade
chmod -R 755 /root/cert

也可以用以上方法申请多域名/泛域名单证书,三个域名里面包含的所有二级域名以及主域名都可以使用这个证书。

自行更改代码第一行就可以解决 多域名/泛域名 单证书了。

无论哪儿需要用到证书,三个域名(包含域名下所有二级域名)用这个也就好了。

安装证书到指定文件夹

注意, 默认生成的证书都放在安装目录下: ~/.acme.sh/, 请不要直接使用此目录下的证书文件。
正确的使用方法是使用 --install-cert 命令,并指定目标位置, 然后证书文件会被copy到相应的位置,比如下面的代码

~/.acme.sh/acme.sh --installcert -d mydomain.com --key-file /root/private.key --fullchain-file /root/cert.crt

上面的 /root/private.key 以及 /root/cert.crt 是把密钥和证书安装到 /root 目录,并改名为 private.key 和 cert.crt

更新证书

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

更新 Acme 脚本

升级 Acme.sh 到最新版本

~/.acme.sh/acme.sh --upgrade

如果你不想手动升级, 可以开启自动升级:

~/.acme.sh/acme.sh  --upgrade  --auto-upgrade

之后, acme.sh 就会自动保持更新了.

版权声明:
作者:admin
链接:https://www.shennong.date/?p=682
来源:北冥有鱼
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录