如何申请免费SSL证书并实现自动续期操作?

摘要:你的网站在“luo奔”(http协议)还是购买的ssl证书呢,其实使用脚本就可以申请ssl证书并且自动续期。 下面分享我申请ssl证书折腾的过程及执行过程中遇到的坑,收藏留用吧。 官网最新已经有提供CertGo客户端,如果你不需要折腾脚本可
你的网站在“luo奔”(http协议)还是购买的ssl证书呢,其实使用脚本就可以申请ssl证书并且自动续期。 下面分享我申请ssl证书折腾的过程及执行过程中遇到的坑,收藏留用吧。 官网最新已经有提供CertGo客户端,如果你不需要折腾脚本可以使用可视化操作(如果你更喜欢用脚本就选acme.sh)。 CertGo:桌面端,体验沉浸式、可视化的证书管理 acme.sh:纯 Shell 脚本编写的客户端,零依赖,轻量级且功能极其强大。 配置 DNS 服务商 以 aliyun 服务商为例(具体以您的域名服务商为准)。 https://ram.console.aliyun.com/users/create 配置访问凭证,记录生成AccessKey ID、AccessKey Secret(后面会用到)。 登录 FreeSSL https://freessl.cn 注册/登录。 添加 ACME 账号 新增 EAB -> 起个标签名 --> 记录生成 EAB KID、EAB HMAC KEY(后面会用到)。 可视化(CertGo 桌面端) 唤起客户端 下载安装客户端。 配置 DNS 供应商 API 凭证输入 aliyun 申请的凭证信息。 配置自动化证书 基础配置(添加域名) 可以多个域名公用一个证书,添加多个域名即可。 如果你申请的是*通用域名,最好再申请一个单域名,例如:申请*.bugshare.cn时多申请一个bugshare.cn,这样访问https://bugshare.cn也能通。 集成设置(选择供应商) 选择之前配置的 DNS 供应商,这样会在 DNS 记录中自动写入 TXT 记录。 如果申请过程中出现DNS错误,一般是DNS解析问题,可以通过https://dnschecker.org检查或联系DNS供应商(有时候可能48小时内生效)。 部署配置(复制证书) 证书路径以你服务器存放实际路径(例如以nginx配置的路径为准), 复制后可以执行命令,例如:重启nginxnginx -s reload,我的nginx放在docker,那么配置的是docker restart nginx。 部署 CertGo Agent(Linux服务器自动续期) 下载配置文件,一键复制配置命令 安装 CertGo Agent curl -sSL https://certgo.trustasia.com/install.sh | sudo bash 上传配置并首次运行,将配置文件上传到 ~/.certgo/configs/ 目录后,执行 certgo reload Shell 脚本(acme.sh) 安装 acme.sh 首先在服务器上安装 ACME 客户端。 https://github.com/acmesh-official/acme.sh/wiki/说明 # 终端执行 curl https://get.acme.sh | sh -s email=你的FreeSSL账号邮箱 # 国内环境: git clone https://gitee.com/neilpang/acme.sh.git cd acme.sh ./acme.sh --install -m 你的FreeSSL账号邮箱 配置 DNS 服务商 导入 DNS 提供商的 API 凭证以实现自动验证(前面有申请)。 export Ali_Key="您的阿里云Key" export Ali_Secret="您的阿里云Secret" 绑定 ACME 账户(首次运行) 使用 EAB 凭证绑定您的 ACME 账户(前面有申请)。 ./acme.sh --insecure --register-account --server https://acme.litessl.com/acme/v2/directory \ --eab-kid 您的EAB KID \ --eab-hmac-key 您的EAB HMAC KEY 申请证书 执行命令以验证域名所有权并签发证书。 可以多个域名公用一个证书,添加多个域名即可。 如果你申请的是*通用域名,最好再申请一个单域名,例如:申请*.bugshare.cn时多申请一个bugshare.cn,这样访问https://bugshare.cn也能通。 如果申请过程中出现DNS错误,一般是DNS解析问题,可以通过https://dnschecker.org检查或联系DNS供应商(有时候可能48小时内生效)。
阅读全文