Новый инструмент GO Автоматизирует обновление SSL для Safetine WAF, заканчивая 90-дневные головные боли сертификации

Новый инструмент GO Автоматизирует обновление SSL для Safetine WAF, заканчивая 90-дневные головные боли сертификации

4 июня 2025 г.

Устали от ручного обновления сертификатов SSL каждые 90 дней?


Облачные провайдеры снизили обоснованность своих бесплатных SSL Certs с 1 года до 3 месяцев. В то время как Safeline WAF поддерживает Let's Encrypt из коробки, ему не хватает автоматического обновления. Вот где входит этот инструмент автоматизации - сэкономив вам время и сокращает время простоя.


🔧 Что делает этот инструмент


Эта утилита на основе GO автоматически обновляет ваши сертификаты SAFELINE SSL с помощью Let's Encrypt'sDNS-01 ChallengeПолем Он поддерживает нескольких крупных поставщиков DNS из коробки:


  • Tencent Cloud
  • Aliyun (Alibaba Cloud)
  • Huawei Cloud
  • West.cn
  • Дождь


Не видите своего поставщика DNS? Оставьте комментарий к репо Github - автор открыт для добавления большего.


GitHub:https://github.com/wink541/safelineapi

Зеркало (Gitea):https://gitea.doicat.com/duoduo/safelineapi


🚀 Начало работы


1. клонировать репо

git clone https://github.com/Wink541/SafelineAPI
cd SafelineAPI


2. Постройте бинарный

go build -o safelineApi ./cmd/safelineApi/main.go
# Optional: cross-compile for your platform
go env -w GOOS=linux    # Options: linux / windows / darwin
go env -w GOARCH=amd64  # Options: amd64 / arm64


3. Редактировать файл конфигурации


Создатьconfig.jsonсо следующей структурой:

{
  "SafeLine": {
    "Host": {
      "HostName": "192.168.1.4",
      "Port": "1443"
    },
    "ApiToken": "your-safeline-token"
  },
  "ApplyCert": {
    "Days": 30,
    "Email": "your@email.com",
    "SavePath": "/tmp/ssl",
    "DNSProviderConfig": {
      "DNSProvider": "TencentCloud",
      "TencentCloud": {
        "SecretId": "your-id",
        "SecretKey": "your-key"
      },
      "AliCloud": {
        "AccessKeyId": "your-id",
        "AccessKeySecret": "your-secret"
      },
      "HuaweiCloud": {
        "AccessKeyId": "your-id",
        "Region": "cn-east-2",
        "SecretAccessKey": "your-key"
      },
      "WestCN": {
        "Username": "your-username",
        "Password": "your-password"
      },
      "RainYun": {
        "ApiKey": "your-api-key"
      }
    }
  }
}


4. Запустите инструмент

./safelineApi ./config.json


5. (необязательно) Добавить задание Cron


Для автоматизации обновления каждый месяц:

0 0 1,31 * * root /opt/safelineApi/safelineApi /opt/safelineApi/config.json > /opt/safelineApi/app.log


🧪 Пример вывода


Перед исполнением:

Сертификаты близко к истечению (до 90 дней)


Вывод журнала после запуска инструмента:

[SUCCESS] 2025/04/15 21:36:07 SafeLine config validated!
[INFO]    2025/04/15 21:36:08 Starting certificate renewal...
[INFO]    2025/04/15 21:36:10 Using DNS-01 challenge for domain [www.doicat.com]
[INFO]    2025/04/15 21:36:14 DNS record propagation successful
[SUCCESS] 2025/04/15 21:36:43 Certificate for [www.doicat.com] updated!


После исполнения:

Сертификаты обновлены успешно ✅


✍ Последние мысли


Этот простой инструмент GO решает реальную боль: автоматизация обновления SSL для Safetine WAF. Если вы устали от того, чтобы получить эти предупреждения о «с истечением срока действия сертификата», этот инструмент для вас.


Проект все еще развивается - не стесняйтесь вносить свой вклад или предлагать улучшения в GitHub!

  • 🌐 Репозиторий GitHub
  • 📚 Официальные документы
  • 💬 Сообщество разногласий

Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE