카테고리

전체글

목록닫기 ▲
⊞ 𝄘 ⊟
생존과 스펙 사이: 대학 언론을 도구화하는 대학생 기자들의 냉혹한 현실
대학 언론의 위기를 다룰 때 흔히 학교 본부의 탄압이나 편집권 침해 같은 거시적 갈등에만 주목한다. 그러나 대학 언론을 구성하는 가장 기본 단위인 ‘학생 기자’들의 내부...
2026. 05. 18.
2026. 05. 18. 조회수 표시생략
대학 언론의 미시적 걸림돌: 행정 조교의 숨은 권력과 실무적 좌절
대학 언론의 위기를 논할 때 흔히 거시적인 언론 탄압이나 자본의 논리, 혹은 학생들의 무관심만을 주된 원인으로 지적한다. 그러나 실제 대학 언론의 일상적 운영 구조를 들여다보면,...
2026. 05. 18.
2026. 05. 18. 조회수 표시생략
대학 언론의 권익 주장이 마주한 현실적 한계와 보완 가능성
지성 담론의 요람인 대학의 대표적인 학생 참여 기구인 ‘대학 언론’의 위기는 오늘 어제오늘의 일이 아니다. 87년 민주화 이후 기성 매체의 대안으로서 각광받던 대학 언론은, 21세기...
2026. 05. 18.
2026. 05. 18. 조회수 표시생략
경쟁사가 화려한 미사여구로 마케팅할 때 우리는 하지 않았던 이유
수완뉴스 청소년 기자단이 가입비 ‘0원’을 선언하기까지의 뼈아픈 기록 솔직하게 고백합니다. 수완뉴스도 처음에는 남들과 똑같았습니다. 창간 초기, 저희는 기존 청소년·대학생 대외활동 업계의 당연한 관행을 그대로 따랐습니다....
2026. 05. 18.
2026. 05. 18. 조회수 표시생략
기성 언론이 가진 성역의 붕괴
1. 서론 과거 인쇄 매체 시절, 언론은 ‘역사의 초고’를 기록한다는 명분 아래 무소불위의 권력을 누려왔다. 그러나 2026년 현재, 대한민국 언론은 기술적 진보를 거부한 채 자신들이...
2026. 05. 04.
2026. 05. 04. 조회수 표시생략
1 2 3 19

[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)