在搭建wordpress的过程中,https访问需要ssl证书。而acme则是一个很好的证书申请工具。网上有很多讲自动申请证书的例子,今天我们主要讲一下手动申请证书怎么做。
1.安装acme脚本
curl https://get.acme.sh | sh
2.申请添加记录
~/.acme.sh/acme.sh --issue --dns -d *.lawxue.com --yes-I-know-dns-manual-mode-enough-go-ahead-please --force
这里呢,--force
是指强制申请,如果你之前申请过,再使用此脚本不会再添加记录了。lawxue.com是我需要申请的域名。
脚本跑完后,屏幕会出现两串字符串。特点是_acme开头有一个,还有一个比较长的字符串。
3.去域名托管商添加域名解析
针对第2步中得到的_acme开头的字符与一个比较长的字符,在域名托管商里,新增一条TXT记录。
域名:_acme开头的
内容:较长的字符串
IP:填写你的主机IP
如果是cloudflare的话,解析应该还挺快的。
4.检测解析是否生效
检测是否生效,需要用到一个dig工具。
Debian系统安装:apt-get install dnsutils
;
CentOS系统安装: yum install bind-utils
安装完成后,使用如下命中检测:
dig _acme-challenge.lawxue.com txt
如果出现ANSWER SECTION那边有之前出现的添加记录的话,可以执行下一步。
5.申请签发证书
~/.acme.sh/acme.sh --renew -d *.lawxue.com --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please --force
这里,将*.lawxue.com改成你自己的域名即可。
安装完成,屏幕上会出现success字样,并给出证书的一些路径。如此即签发成功。
6.安装证书到指定位置
~/.acme.sh/acme.sh --installcert -d *.lawxue.com --fullchainpath /root/httpcrt/lawxue.com.crt --keypath /root/httpcrt/lawxue.com.key
这里,将/root/httpcrt换成你自己的路。最好在这之前,先新建一个目录:
mkdir -p /root/httpcrt
脚本执行后,即出现下述字样,表示证书已安装成功。
[Sat Sep 5 23:04:34 CST 2020] Installing key to:/root/httpcrt/lawxue.com.key
[Sat Sep 5 23:04:34 CST 2020] Installing full chain to:/root/httpcrt/lawxue.com.crt
7.其他说明
7.1权限问题
如证书在nginx中报错,则请将证书目录授权给nginx,并授权755.
chown -R nginx:nginx /root/httpcrt/
chmod -R 755 /root/httpcrt/
7.2自动安装证书续期问题
通过该种途径申请的方式,无法进行自动续期。
如果是cloudflare的话,通过这种方式申请,证书有效期一般是1年。一年后再按上述步骤操作一遍,也不是难事了。