acmeGoBaidu

command module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 21, 2024 License: MIT Imports: 3 Imported by: 0

README

acmeGoBaidu 是一个用Go编写的自动申请SSL证书并同步到百度CDN的工具。

GitHub Repo stars

安装acmeGoBaidu

acmeGoBaidu需要go1.21才能安装成功。执行一下命令

go install -v github.com/wjlin0/acmeGoBaidu/cmd/acmeGoBaidu@latest

下载准备运行的二进制文件

用法

命令行

在运行的当前目录下创建一下config.yaml 文件

acme:
  email: "xxx@xx.com" # acme需要的邮箱
domains:
  - domain: "www.wjlin0.com" # 申请的域名
    provider: "cloudflare" # 域名的服务商
    baidu: # 百度配置CDN的配置 
      origin: # 来源
        - peer: "https://example.wjlin0.com:443" # 源站地址 https 回源
          host: "www.wjlin0.com" # 回源的域名
        - peer: "http://example.wjlin0.com:80" # 源站地址 http 回源
          host: "www.wjlin0.com" # 回源的域名
      cname: 
        enable: true # enable 为 true 时此项有效。是否使用 cname 开启此功能会同步 cname 到 域名服务商 (目前支持 cloudflare,主动提需求才会写其他服务商的代码)
        value: "www.wjlin0.com.a.bdydns.com." # 当然也可以不填写,程序自动补充 默认值是 域名.a.bdydns.com.
      form: dynamic # 默认为"default",其他可选value:"image"表示图片小文件,"download"表示大文件下载,"media"表示流媒体点播,"dynamic"表示动静态加速
      dsa: # 动态加速规则,enable 为 true 时此项有效。https://cloud.baidu.com/doc/CDN/s/gjwvyex4o#%E8%AF%B7%E6%B1%82%E4%BD%93
        enable: true
        rules:
          - type: "method"
            value: 'GET;POST;PUT;DELETE;OPTIONS'

配置服务商、百度的认证信息 例如:cloudflare的认证信息

export CLOUDFLARE_EMAIL="xxx@xx.com"
export CLOUDFLARE_API_KEY="xxxxx"
export BAIDUYUN_ACCESSKEY="xxxxx"
export BAIDUYUN_SECRETKEY="xxxxx"

创建完成后执行以下命令

acmeGoBaidu

docker

docker run -d --name acmeGoBaidu -e CLOUDFLARE_EMAIL="xxx@xx.com" -e CLOUDFLARE_API_KEY="xxxxx" -e BAIDUYUN_ACCESSKEY="xxxx" -e BAIDUYUN_ACCESSKEY="xxxx" -e CRON="0 0 * * 1" -v ./data/config.yaml:/app/config/config.yaml -v ./data/certs:/app/certs wjlin0/acmegobaidu:latest

K8s

编写一下yaml文件


apiVersion: v1
kind: ConfigMap
metadata:
  name: acme-go-baidu-config
data:
  config.yaml: |
    acme:
      email: "xxx@xx.com" # acme需要的邮箱
    domains:
      - domain: "www.wjlin0.com" # 申请的域名
        provider: "cloudflare" # 域名的服务商
        baidu: # 百度配置CDN的配置 
          origin: # 来源
            - peer: "https://example.wjlin0.com:443" # 源站地址 https 回源
              host: "www.wjlin0.com" # 回源的域名
            - peer: "http://example.wjlin0.com:80" # 源站地址 http 回源
              host: "www.wjlin0.com" # 回源的域名
          cname: 
            enable: true # enable 为 true 时此项有效。是否使用 cname 开启此功能会同步 cname 到 域名服务商 (目前支持 cloudflare,主动提需求才会写其他服务商的代码)
            value: "www.wjlin0.com.a.bdydns.com." # 当然也可以不填写,程序自动补充 默认值是 域名.a.bdydns.com.
          form: dynamic # 默认为"default",其他可选value:"image"表示图片小文件,"download"表示大文件下载,"media"表示流媒体点播,"dynamic"表示动静态加速
          dsa: # 动态加速规则,enable 为 true 时此项有效。https://cloud.baidu.com/doc/CDN/s/gjwvyex4o#%E8%AF%B7%E6%B1%82%E4%BD%93
            enable: true
            rules:
              - type: "method"
                value: 'GET;POST;PUT;DELETE;OPTIONS'
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: acme-go-baidu-deployment
spec:
  selector:
    matchLabels:
      app: acme-go-baidu
  template:
    metadata:
      labels:
        app: acme-go-baidu
    spec:
      containers:
        - name: acme-go-baidu-container
          image: wjlin0/acmegobaidu:latest
          resources:
            limits:
              memory: '32Mi'
              cpu: '50m'
          env:
            - name: CONFIG_PATH
              value: '/app/config/config.yaml'
            - name: JSON_PATH
              value: '/app/certs/certificate.json'
            - name: CRON
              value: '0 0 * * 1' # 每周一凌晨执行
            - name: CLOUDFLARE_EMAIL
              value: 'xxx@xxx.com'
            - name: CLOUDFLARE_API_KEY
              value: 'xxxxx'
            - name: BAIDUYUN_ACCESSKEY
              value: 'xxxxx'
            - name: BAIDUYUN_SECRETKEY
              value: 'xxxxx'
          command:
            - "acmeGoBaidu"
          volumeMounts:
            - mountPath: '/app'
              subPath: 'acmeGoBaidu.yaml'
              name: config
              readOnly: true
            - mountPath: '/app/certs'
              name: certs 
      volumes:
        - name: config
          configMap:
            name: acme-go-baidu-config
        - name: certs
          persistentVolumeClaim:
            claimName: acme-go-baidu-pvc

创建pvc

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: acme-go-baidu-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 100Mi
# 创建 pvc
kubectl create -f pvc.yaml
# 运行
kubectl apply -f acmeGoBaidu.yaml

注意

根域名可能无法配置CNAME 记录,配置后,不生效

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
acmeGoBaidu command
pkg
baidu/cloudflare
Package cloudflare implements a DNS provider for solving the DNS-01 challenge using cloudflare DNS.
Package cloudflare implements a DNS provider for solving the DNS-01 challenge using cloudflare DNS.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL