弄了个发卡站,付款不会跳转到付款成功。折腾了不少时间,发现是证书不全,没补齐根证书。。。

期间还吧acme签发的let证书换成了zerossl 支持ecc

写下过程吧 很简单 我怕换机器东西没了 重新申请太麻烦 记录下


acme.sh 使用 ACME 协议自动申请 SSL 证书

项目地址:[acme.sh]

1) 安装 acme.sh
==========

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

该安装脚本做了几件事:

把 acme.sh 安装到了 home 目录下:~/.acme.sh/
创建了一个 bash 的 alias, 方便使用: alias acme.sh=~/.acme.sh/acme.sh
创建了 cronjob,每天 0:00 点自动检测所有的证书,如果快过期了,则会自动更新证书。

需要连接到github的网络,请自行解决

2) 注册 ZeroSSL 账号
================

官网注册:https://zerossl.com/

注册完成后首页点击 右下角
或直接进入网站 https://app.zerossl.com/developer

生成EAB Credentials 并且记下来

3) 将 acme.sh 的注册服务器改为 ZeroSSL
==========================

运行,替换 eab-kid 和 eab-hmac-key 为上一步中生成的:

acme.sh --register-account --server zerossl \
--eab-kid xxxxxxxxxxxx \
--eab-hmac-key xxxxxxxxx

4) 将其设置为默认 Server
=================

acme.sh --set-default-ca --server zerossl

5) 将dns域名服务器的api写入环境
========================

本文章使用 DNS 验证的方法来验证域名,acme.sh 可以通过 DNS 提供商的 API 自动设置验证记录,具体用法详见文档:更多api用法

这里我用的cloudflare 可以自行查找自己的服务商

导入API信息到acme.sh,运行命令

export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export CF_Email="xxxx@sss.com"

5) 签发证书
=======

acme.sh --issue -d lw.al -d *.lw.al --dns dns_cf --keylength ec-256

1. --dns 指定 DNS 服务商,dns_dp 代表 DNSPod,还有 dns_cf 代表 CloudFlare,更多的字段见
2. --keylength ec-256 表示签发 ECC 证书,不添加则签发 RSA 证书,可选参数还有 ec-384 和 ec-521

6) 安装证书
=======

使用 --install-cert 命令安装证书到指定目录,因为生成的证书是根证书等
可能有些中间件不认识,用这个生成可以自动拼接
我使用的是宝塔,需要pem证书

acme.sh --install-cert -d lw.al --ecc \
--key-file "/root/pme/lw.al_key.pem" \
--fullchain-file "root/pme/lw.al_cert.pem" \

- --ecc 表示安装 ECC 证书
- --key-file 和 -fullchain-file 后接想要安装到的目录及证书名

 


用心