准备工作
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到相应的位置,比如下面的代码。
~/.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脚本会自动为证书续期,所以我们无需担心证书的更新问题。