카테고리

전체글

목록닫기 ▲
⊞ 𝄘 ⊟
기성 언론이 가진 성역의 붕괴
1. 서론 과거 인쇄 매체 시절, 언론은 ‘역사의 초고’를 기록한다는 명분 아래 무소불위의 권력을 누려왔다. 그러나 2026년 현재, 대한민국 언론은 기술적 진보를 거부한 채 자신들이...
2026. 05. 04.
2026. 05. 04. 조회수 표시생략
데이터화된 인간: 왜 시장은 신입의 가능성을 거부하는가
과거의 기업은 신입을 뽑아 조직의 일원으로 길러내는 ‘교육’의 과정을 투자로 여겼다. 하지만 AI 기술의 등장은 이 투자 공식을 철저히 파괴했다. 방대한 데이터를 단숨에 학습하고 결과물을...
2026. 04. 20.
2026. 04. 20. 조회수 표시생략
세상은 어떤 비밀도 없다 : 데이터 시대의 자기 증명
4차 산업혁명이 대두되고 있는 21세기는 데이터가 난무하는 시대이다. 내가 궁금한 것, 먹고 싶은 것, 관심 있는 분야부터 진로와 가족 관계에 이르기까지, 원하는 거의 모든 정보가...
2026. 04. 20.
2026. 04. 20. 조회수 표시생략
패러다임의 몰락과 언론 혁명
어떤 시대건 정보의 유통권을 쥔 자가 세상을 지배해 왔다. 미디어가 거대 자본과 권력의 전유물이었던 시대에 성벽 안에서 생산된 정보는 반증 불가능한 ‘정답’으로 군림했다. 21세기 디지털...
2026. 04. 20.
2026. 04. 20. 조회수 표시생략
전문성을 갖춘 ‘독립 언론’이 있어야 할 이유
인터넷과 스마트폰이 보급되기 전, 미디어는 거대 자본과 권력을 가진 특정 집단의 전유물이었다. 종이 신문 한 부가 독자의 손에 쥐어지기까지는 수억 원의 자본과 수많은 인력이 필요했다....
2026. 04. 20.
2026. 04. 20. 조회수 표시생략
1 2 3 18

[Let’s Encrypt] 와일드카드 인증서 발급 & Cloudflare 자동화 방법

1. 개요

Let’s Encrypt 와일드카드 인증서(*.domain.com)는 보안상 DNS-01 챌린지 방식만 지원합니다. 기존의 수동 방식(Manual)은 갱신 때마다 DNS TXT 레코드를 직접 수정해야 하는 번거로움이 있어, Cloudflare API를 이용한 완전 자동화 설정을 권장합니다.

2. 주요 시행착오와 해결 방법

  • 명령어 오류: 블로그 등에서 명령어를 복사할 때 하이픈(-)이 긴 대시 (-)로, 따옴표(“)가 둥근 따옴표로 바뀌어 인식되지 않는 문제가 발생할 수 있습니다. 반드시 표준 ASCII 문자를 사용해야 합니다.
  • 수동 방식의 한계: _acme-challengs 레코드를 중복 등록하거나, DNS 전파 시간을 기다리지 않고 엔터를 누를 경우 NXDOMAIN 또는 Incorrect TXT record 에러가 발생합니다.
  • 알고리즘의 충돌: 기존 인증서가 ECDSA 방식일 때 새 명령어가 RSA를 시도하면 충돌이 발생합니다. –key-type ecdsa 옵션을 명시하여 해결할 수 있습니다.

3. Cloudflare DNS 플러그인 자동화 단계

3.1 패키지 업데이트 및 Certbot 설치

Let’s encrypt는 certbot를 통해 인증서를 발급해야 합니다. 아직 관련 패키지가 설치되어 있지 않았다면, 패키지 설치를 진행합니다.

// 패키지 업데이트
apt-get install update
// 패키지 설치
apt-get install certbot -y
3.2 플러그인 설치
apt-get install python3-certbot-dns-cloudflare
3.3 API 토큰 설정

Cloudflare 대시보드에서 Zone:DNS:Edit 권한을 가진 토큰을 생성한 뒤 서버에 저장합니다.

  • 파일 경로: 예) ~/.secrets/certbot/cloudflare.ini
  • 파일 내용: 예:) dns_cloudflare_api_token = YOUR_API_TOKEN
  • 보안 설정: chmod 600 ~/.secrets/certbot/cloudflare.ini
3.4 인증서 발급 및 자동 갱신 설정
certbot certonly \
  --dns-cloudflare \
  --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini \
  --cert-name mydomain.com \
  --key-type ecdsa \
  -d "mydomain.com" -d "*.mydomain.com" \
  --preferred-challenges dns \
  --non-interactive \
  --agree-tos \
  -m  [email protected]
3.5 기존 수동/Standalone 인증서 전환 팁

기존에 manual이나 standalone 방식으로 발급받은 인증서가 있다면 certbot renew 시 에러가 발생합니다. 이때는 위 명령어를 –force-renewal 옵션과 함께 실행하여 인증서의 갱신 메커니즘 자체를 dns-cloudflare로 교체해 주어야 합니다.

3.6 최종 확인

설정이 완료된 후 아래 명령어를 실행하여 모든 도메인이 성공적으로 업데이트되는지 확인합니다.

certbot renew --dry-run

결과: “Congratulations, all simulated renewals succeeded:” 메시지가 나오면 정상적으로 인증서가 갱신되었습니다.

Let’s encrypt 인증서 발급할 때 유의사항

Let’s encrypt는 Apache2나 Nginx를 운영할 때 SSL 인증서를 무료로 발급해 주는 툴이다. 구글, 모질라 재단 등에서 후원하고 있는 프로젝트이기도 하다.

Let’s encrypt는 리눅스 터미널에서 명령어를 사용해야 하는데, 인증서 발급 시 유의사항이 있다.

Cleaning up challenges
Problem binding to port 80: Could not bind to IPv4 or IPv6.

80포트가 이미 사용 중이라서 certbot 명령어를 사용해 인증서를 발급 받을 수 없다고 출력이 되었다.

이 경우 아파치나 엔진엑스가 실행 중이라면 위와 같은 문구가 출력될 수가 있는 것이다. 따라서 아파치나 엔진엑스를 죽여주면 된다.

예: service apache2 stop (엔진 엑스를 사용중이라면 service nginx start)

서버 엔진이 죽었다면, 다시 certbot 명령을 사용해서 인증서를 발급받으면 된다. 만약 인증서를 발급받았다면, 다시 서버엔진을 실행해 주어야 한다.

예: service apche2 start (엔진 엑스를 사용중이라면 service nginx start)