Certd的搭建与证书自动部署与通知
702 字
4 分钟
Certd的搭建与证书自动部署与通知
前言
前段时间去办了商宽,可算是有公网IP了 CloudFlare Tunnel实在太慢了
然后我白嫖了免费的pp.ua域名托管到了CF 现在只需要定期给域名申请证书就好了
开始折腾
搜了一圈发现有个叫Certd的方案不错,类似于Certimates,不过这个有些功能要收费并且更强大
但其实他已经把东西开放出来了()收费的地方自己写也是能实现的
我需要的就是让他自动把证书部署到雷池WAF,因为我所有暴露到公网的服务都由雷池WAF提供
搭建
Certd我就直接照着原来的compose部署到K8s上就好
这里放上yml
---apiVersion: apps/v1kind: Deploymentmetadata: annotations: {} labels: k8s.kuboard.cn/name: certd-deployment name: certd-deployment namespace: certdspec: selector: matchLabels: k8s.kuboard.cn/name: certd-deployment template: metadata: labels: k8s.kuboard.cn/name: certd-deployment spec: containers: - env: - name: TZ value: Asia/Shanghai - name: certd_system_resetAdminPasswd value: 'false' image: 'registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest' imagePullPolicy: IfNotPresent name: certd ports: - containerPort: 7002 name: https protocol: TCP - containerPort: 7001 name: http protocol: TCP resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /etc/localtime name: localtime readOnly: true - mountPath: /etc/timezone name: timezone readOnly: true - mountPath: /app/data name: data dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} volumes: - hostPath: path: /etc/localtime type: File name: localtime - hostPath: path: /etc/timezone type: '' name: timezone - name: data persistentVolumeClaim: claimName: certd-data---apiVersion: v1kind: Servicemetadata: annotations: {} labels: k8s.kuboard.cn/name: certd-deployment name: certd-deployment namespace: certdspec: ports: - name: http port: 7001 protocol: TCP targetPort: 7001 - name: https port: 7002 protocol: TCP targetPort: 7002 selector: k8s.kuboard.cn/name: certd-deployment sessionAffinity: None type: ClusterIPstatus: loadBalancer: {}
---apiVersion: networking.k8s.io/v1kind: Ingressmetadata: annotations: cert-manager.io/cluster-issuer: my-acme-issuer labels: k8s.kuboard.cn/name: certd-deployment name: certd-deployment namespace: certdspec: ingressClassName: nginx-ingress rules: - host: certd.k8s.lan http: paths: - backend: service: name: certd-deployment port: number: 7001 path: / pathType: Prefix tls: - hosts: - certd.k8s.lan secretName: certd-tls-secret然后局域网访问certd.k8s.lan进入管理员
默认账号密码是admin 123456 记得修改
证书流水线的创建
首先的话创建一个流水线,我这里这么写:

然后的话去CF申请一个Token,这里不过多赘述了
域名所有权验证有HTTP和DNS两种方式,DNS就是让ACME直接与权威DNS解析商通信确认有Challenge的解析
Http则无法申请泛域名,这里的话最适合我们的还是DNS Challenge
然后手动运行证书申请,把申请的证书先复制一份到雷池(伏笔)
然后选择部署到雷池 这么写就好

我真正想说的其实是通知的配置,也是比较有意思的
通知配置
我这边用的是bark,因为我用的iOS,Bark免费而且及其简单易用
我前面说过,Certd有些功能需要付费才能使用

真的是这样吗((
我们选择自定义web hook请求
Bark的API同时支持GET和POST
那不就简单了吗

这么写就好了
那么能不能用呢
当然是可以的了()不然我也不会发出来

文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
Certd的搭建与证书自动部署与通知
https://cainongw.github.io/posts/cert-auto-application/ 相关文章 智能推荐
1
记一次filebrowser的搭建
Kubernetes 起因 我以为这个就是写个Deployment然后挂载NFS就得了 本来都不打算写blog的 结果后面发现折腾了我几个小时才好 还是有一点坑的 所以就写一下
2
基于authentik的局域网单点登录与通行密钥的配置与部署
Kubernetes 前言 Passkey 通行密钥 作为一种新的身份验证方式近几年开始慢慢流行起来了 该说不说 真的很好用 其安全且方便,理论来说Passkey的安全性是高于传统的2FA的(尤其是有生物认证的情况下) 但是目前只有一些大厂 比如Google Github 或者一些虚拟货币平台支持 国内几乎没有厂商支持 为数不多支持的微信还要求你用非+86的手机注册才可以用 我就
3
基于Gitlab Runner的CI/CD搭建
Kubernetes 前言 我已经搭建了很多七七八八的服务 应该是完全满足DevOps的需求了 但我还完全没有体验过整个流程呢 刚好我自己给Aqua的前端改了点代码 我决定搞一个自动部署
4
开源WAF 雷池在K8s上的搭建
HomeLab 前言 换了条宽带,现在我拥有动态的公网IPV4地址了 我打算暴露一些服务出去以便我使用 例如Openlist RDP Gitlab 但是 我并不打算公开 我只打算自己使用 前面我们搭建了Authentik作为SSO单点登录,刚好雷池WAF支持通过单点登录鉴权来允许访问 这样我就可以实现把ESXi挂到公网 但是不登录都过不了防火墙
5
记一次局域网内.lan域名的证书自签名并挂载到Ingress
HomeLab 前言 在Authentik的折腾中由于我们没有https导致passkey无法使用 并且想使用passkey必须要可用的证书 Chrome提示什么不安全的连接即使有https也是无法使用的 所以我们需要给.lan域名签一个证书并信任他
随机文章 随机推荐