去年这个时候薅的国外一家通配符证书到期了,这两天才发现,就索性直接换上去了,因为let's encrypt的证书只有三个月,尽管可以续期,但是cdn上却需要手动换,只能更换一年的普通证书或者一年的通配符证书,基于白嫖的体质,找到了之前在mjj论坛一直广为宣传的180天免费通配符证书,虽然只有半年,但一年只需要换两次,也省事了好多。

话不多说,直接上方法!

准备工作

有些大佬应该是手搓的环境,应该不需要这一步安装

###下载并安装amce.sh  并且exmail改为自己的邮箱
curl https://get.acme.sh -s | sh -s email=my@example.com

注册设备

##注册设备,直接在服务器上执行以下命令,注意my@example.com修改为自己的邮箱(极其重要),此目的是验证订单,防止大批量被薅
acme.sh --register-account --accountemail \
    my@example.com \
    --server http://acme.hi.cn/directory

域名验证

域名申请方法A--DNS验证

  1. 域名在dnspod(腾讯云)

控制台申请api密钥以及id
api.png
apikey.png

##验证api,直接服务器执行,请改为自己的id以及key,以下为示例
export DP_Id="1234"
export DP_Key="sADDsdasdgdsf"

##申请证书,直接执行如下命令
acme.sh --issue \
    --dns dns_dp \
    -d \*.1abc.com \
    --days 180 \
    --server https://acme.hi.cn/directory

下发成功则证书存放于 ~/.acme.sh/your.domain里,里面的full_chain.pem以及key.epm则是你的证书
  1. 域名在阿里云

首先在阿里云申请一个 AccessKey,用于 API 操作阿里云服务,可以使用创建子用户的方法(更安全),并且只授权 AliyunDNSFullAccess 权限

###同样将key和id输入服务器
export Ali_Key="阿里云API KEY"
export Ali_Secret="阿里云API Secret"

##申请证书则直接执行
acme.sh --issue \
    --dns dns_dp \
    -d \*.1abc.com \
    --days 180 \
    --server https://acme.hi.cn/directory

下发成功则证书存放于 ~/.acme.sh/your.domain里,里面的full_chain.pem以及key.epm则是你的证书



其他服务商请参考 其他域名服务商申请api验证

域名验证方法B--文件验证
此方法适用于域名没到期,可以正常访问,不然得关掉证书才能正常申请,因为我的证书到期了,又套了CDN,需要关掉好几样,为了快速只好选择方法A

###其中 /www/wwwroot/abcdef.com 为你自己的网站目录(此为宝塔下路径,具体根据自己网站来定),只能在证书没到期可以正常访问下用此种方法
acme.sh --issue \
    -d *.abcdef.com \
    --webroot /www/wwwroot/abcdef.com \
    --days 180 \
    --server https://acme.hi.cn/directory

####如果无法申请成功,报403错误
##例如 Nginx 默认会禁止 . 点开头的目录,可以添加以下配置放行并重启 HTTP 服务:
location /.well-known {
    allow all;
}

##Apache 默认会禁止 . 点开头的目录,可以添加以下配置放行并重启 HTTP 服务:
<Directory "/.well-known">
    AllowOverride All
</Directory>

##宝塔面板用户不需要,默认配置在网站里的配置文件中



其他操作方法还请移步 https://www1.hi.cn/docs/intro