【玩转Lighthouse】Acme申请SSL证书

2022-05-13 15:36:57 浏览数 (1)

准备工作

1.注册域名

2.将域名解析到服务器

安装ACME

更新并安装相关组件

在安装ACME之前我们先更新一下环境并安装socat,请根据服务器linux版本选择命令。

Debian/Ubuntu

代码语言:javascript复制
apt update -y          #Debian/Ubuntu 命令
apt install -y curl    #Debian/Ubuntu 命令
apt install -y socat    #Debian/Ubuntu 命令

Centos

代码语言:javascript复制
yum update -y          #CentOS 命令
yum install -y curl    #CentOS 命令
yum install -y socat    #CentOS 命令

安装acme脚本

代码语言:javascript复制
curl https://get.acme.sh | sh

注册CA账户

代码语言:javascript复制
~/.acme.sh/acme.sh --register-account -m xxxx@xxxx.com

从 acme.sh v 3.0.0 开始,acme.sh 使用 Zerossl 作为默认 ca,您必须先注册帐户(一次),然后才能颁发新证书。将上面的 xxxx@xxxx.com改成你的邮箱回车即可。

提示Create account key ok即为注册成功。

注册成功注册成功

申请证书

安装好ACME后我们就可以开始申请证书了。申请证书的方法有临时监听80端口、Nginx申请等,按实际来操作即可。(服务器安装了nginx就用Nginx的来申请,没有就用80端口直接申请。)注意防火墙放行端口。

80 端口空闲的验证申请

如果你的服务器并没有安装nginx之类的web服务80端口为空闲的你可以让Acme.sh 假装自己是一个 WebServer, 临时监听在 80 端口, 完成验证。

代码语言:javascript复制
~/.acme.sh/acme.sh  --issue -d mydomain.com   --standalone

将mydomain.com改为你要申请证书的域名即可

Nginx 的方式验证申请

如果你的服务器上已经安装了Nginx并且网页可以正常打开你也可以使用Nginx来申请。

代码语言:javascript复制
~/.acme.sh/acme.sh --issue  -d mydomain.com   --nginx

将mydomain.com改为你要申请证书的域名即可

看到证书和证书路径即为申请成功。

申请成功申请成功

安装证书到指定文件夹

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

代码语言:javascript复制
~/.acme.sh/acme.sh --installcert -d mydomain.com --key-file /root/private.key --fullchain-file /root/cert.crt

这里的mydomain.com为你要申请证书的域名,key-file和fullchain-file后面的路径分别是密钥文件和证书文件的路径。使用该命令仅更改域名则将在root目录下生成密钥文件private.key和证书文件cert.crt,密钥和证书路径则分别为/root/private.key和/root/cert.crt。

这时我们就可以在root目录下看到证书和密钥文件了。

根目录下的证书根目录下的证书

证书的更新

单次申请证书有效期为30天,但是Acme脚本会自动为证书续期,所以我们无需担心证书的更新问题。

0 人点赞