SafeLine WAF의 SSL 갱신 자동화: DNS-01 도전 사용

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

DevOps

대상자

  • DevOps 엔지니어 및 웹 인프라 관리자
  • Go 언어 및 자동화 스크립팅에 익숙한 중급 이상 개발자
  • SSL 인증서 자동화 필요성이 있는 시스템 운영자

핵심 요약

  • DNS-01 도전을 통해 Let's Encrypt 인증서 자동 갱신 가능 (DNS-01 challenge)
  • 5개 이상의 주요 DNS 제공업체 지원 (TencentCloud, AliCloud, HuaweiCloud, WestCN, RainYun)
  • Go 기반 CLI 도구로 간단한 설정 후 배포 자동화 (go build, cron 활용)

섹션별 세부 요약

1. 도구 개요 및 문제 정의

  • SafeLine WAF의 Let's Encrypt 인증서 자동 갱신 기능 부재 문제
  • 3개월 유효 기간의 무료 SSL 인증서 갱신 과정의 수동성 및 오류 가능성
  • Go 기반 CLI 도구로 자동화된 인증서 갱신 프로세스 제공

2. 설치 및 구성

  • Go 환경 설정 (go build -o safelineApi, GOOS, GOARCH 설정)
  • config.json 파일 생성
  • SafeLine API 토큰 및 호스트 정보 입력
  • DNS 제공업체별 인증 정보(예: TencentCloud SecretId, SecretKey) 설정
  • 환경 변수 설정 및 실행 명령 (./safelineApi ./config.json)

3. 자동화 실행 및 로그 분석

  • 크론잡 설정 예시 (0 0 1,31 root /opt/safelineApi/safelineApi)
  • 실행 로그 분석
  • DNS 레코드 생성 성공 (DNS record propagation successful)
  • 인증서 갱신 완료 (Certificate for [www.doicat.com] updated!)
  • 실행 전/후 상태 비교 (인증서 유효 기간 90일 이하 → 갱신 완료)

결론

  • cron을 활용한 주기적 실행 설정으로 수동 작업 최소화
  • GitHub 저장소에서 추가 DNS 제공업체 지원 요청 가능
  • Go 기반 CLI 도구로 SafeLine WAF 인증서 관리 효율성 극대화