
Новый инструмент 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
- 📚 Официальные документы
- 💬 Сообщество разногласий
Оригинал