最近一直在折腾网站的SSL证书,因为之前用的商家已经开始收费了,不得以需要更换,毕竟白嫖的很香啊,之前也写过利用came.,但是毕竟是代码看着可能不习惯,今日找到了一个神奇【Certd】,Certd 是一个免费全自动申请和自动部署更新SSL证书的工具。特点是:该项目不仅支持证书申请过程自动化,还可以自动化部署更新证书,让你的证书永不过期。他可以在后台申请全自动申请证书(支持阿里云、腾讯云、华为云、Cloudflare等各种途径注册的域名),包括全自动部署更新证书(目前支持部署到主机、部署到阿里云、腾讯云等,专业版),最最重要的是它支持通配符域名/泛域名,支持多个域名打到一个证书上,这个就很良心了哈。
系统可以在申请完成或者临到期设置邮件通知,可以私有化部署,保障安全,重中之重就是免费、免费、免费(免费的10条,够用)。
好了,不废话直接安装,分成两部分,在宝塔<9.2版本需要手动安装(也不费事),>9.2版本可以在应用商店直接搜索安装,更简便,首先安装手动。
其实学习下手动安装也不错,毕竟有联系就能记住很多操作,不至于一看见字符界面就懵B,好了,现在登录宝塔面板后台,开始跟着教程操作,如图:在宝塔左侧菜单找到【Docker】(没有证明版本太低了,得升级了啊),然后点击顶部tab标签的【容器】,在新弹出的页面我们依次选择【容器编排】-创建,如图:
再次弹出新创,添加Yaml模板,我们选择【添加Compose模板】,创建模板设置【certd】,备注可忽略也可自行设置,然后内容复制如下代码,看图:
内容代码如下:
version: '3.3' # 兼容旧版docker-compose
services:
certd:
# 镜像 # ↓↓↓↓↓ --- 镜像版本号,建议改成固定版本号
image: registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest
container_name: certd # 容器名
restart: unless-stopped # 自动重启
volumes:
# ↓↓↓↓↓ -------------------------------------------------------- 数据库以及证书存储路径,默认存在宿主机的/data/certd/目录下,【您需要定时备份此目录,以保障数据容灾】
- /data/certd:/app/data
ports: # 端口映射
# ↓↓↓↓ ---------------------------------------------------------- 如果端口有冲突,可以修改第一个7001为其他不冲突的端口号
- "7001:7001"
dns:
# ↓↓↓↓ ---------------------------------------------------------- 如果出现getaddrinfo ENOTFOUND等错误,可以尝试修改或注释dns配置
- 223.5.5.5
- 223.6.6.6
# ↓↓↓↓ ---------------------------------------------------------- 如果你服务器部署在国外,可以用8.8.8.8替换上面的dns
# - 8.8.8.8
# - 8.8.4.4
# extra_hosts:
# ↓↓↓↓ ---------------------------------------------------------- 这里可以配置自定义hosts,外网域名可以指向本地局域网ip地址
# - "localdomain.comm:192.168.1.3"
environment: # 环境变量
- TZ=Asia/Shanghai
#- HTTPS_PROXY=http://xxxxxx:xx
#- HTTP_PROXY=http://xxxxxx:xx
# ↑↑↑↑↑ ------------------------------------- 这里可以设置http代理
- certd_system_resetAdminPasswd=false
# ↑↑↑↑↑--------------------------- 如果忘记管理员密码,可以设置为true,重启之后,管理员密码将改成123456,然后请及时修改回false
- certd_cron_immediateTriggerOnce=false
# ↑↑↑↑↑--------------------------- 如果设置为true,启动后所有配置了cron的流水线任务都将被立即触发一次
- VITE_APP_ICP_NO=
# ↑↑↑↑↑ ----------------------------------------- 这里可以设置备案号
#- certd_koa_key=./data/ssl/cert.key
#- certd_koa_cert=./data/ssl/cert.crt
# ↑↑↑↑↑ ----------------------------------------- 配置证书和key,则表示https方式启动,使用https协议访问,https://your.domain:7001
# 设置环境变量即可自定义certd配置
# 服务端配置项见: packages/ui/certd-server/src/config/config.default.ts
# 服务端配置规则: certd_ + 配置项, 点号用_代替
# 客户端配置项见: packages/ui/certd-client/.env
# 按实际名称配置环境变量即可,如: VITE_APP_API=http://localhost:7001
如无必要不用修改内容代码,如有需求按需修改吧,比如DNS和端口号,这些可以修改的。然后点击提交,如图:
添加项目完成之后,我们在右侧找到【拉取镜像】,如图拉去镜像,部分地区可能有延迟,如图拉取失败建议更新宝塔9.2+版本,一键部署吧,拉取图片:
等待拉取镜像完成后,然后点击【容器】就能看见我们刚刚新建好的【certd】
至此手动部署完成,我们可以点击【certd】查看项目的信息,如果你需要看的话,没有必要的话直接访问即可:
访问测试:http://ip:7001
默认账号密码:admin/123456(登录必须修改)
如果是最新版本的宝塔,我们可以在后台一键部署,教程开始。
这个就简单了,还是找到【Docker】然后在顶部菜单点击【应用商店】,直接搜索应用【certd】,如图,点击安装即可。
弹出新窗口,我们选择【latest】(貌似没有其他选项),然后设置域名访问(不需要就不设置),如果用IP访问勾选【允许外部访问】,最后设置下访问端口,如图:
记得去防火墙开通外部访问的端口,比如【7001】,这个端口可以自己修改,不一定非得使用默认。DNS选项也可以忽略或者按需设置。然后就没有然后了,访问地址登录:
访问测试:http://ip:7001
默认账号密码:admin/123456(登录必须修改)
后台部分界面演示:
本项目ssl证书提供商为letencrypt
申请过程遵循acme协议
需要验证域名所有权,一般有两种方式(目前本项目仅支持dns-01)
http-01:在网站根目录下放置一份txt文件
dns-01:需要给域名添加txt解析记录,通配符域名只能用这种方式
实际上没有办法不改变证书文件本身情况下直接续期或者续签。我们所说的续期,其实就是按照全套流程重新申请一份新证书,然后重新部署上去。免费证书过期时间90天,以后可能还会缩短,所以自动化部署必不可少,设置每天自动运行,当证书过期前20天,会自动重新申请证书并部署,另外看看专业版的功能对比:
好了,截至目前都已经安装和部署完成了,我们需要做的就是申请自己的通配符/泛域名证书了,哦对了,你看能觉得奇怪,为什么没有申请证书的教程呢?是吧,哈哈哈还是我了解你吧,因为我得留着再写一篇文章啊,不然一天天的真不知道写什么,还有官方还在一些其他的配置方案,比如忘记密码或者其他方式安装,直接安靠官方的文档吧,我就不写了,官方地址如下:
【GitHub】:https://github.com/certd/certd (访问不了就选择gitee)
【Gitee】:https://gitee.com/certd/certd (国内镜像)
我去准备下一篇文章了,记录下使用cretd申请泛域名证书的过程,有其他问题留言反馈吧。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。