← 가이드

인증서 발급 공통 가이드

새 도메인에 인증서를 붙일 때 서버별 설치 전에 하는 일. Let’s Encrypt로 받을지 구매할지 정하고, CSR을 만들고, 받은 파일을 서버가 읽는 형식으로 맞춘다.

발급 경로 선택

경로 비용 적합한 경우
Let’s Encrypt (무료) 0원, 90일 주기 자동갱신 대부분의 웹 서비스. 자동갱신을 구성할 수 있으면 1순위
구매 (DV/OV/EV) 연 단위 계약 (인증서 1장은 최대 200일, 계약 기간 중 재발급) 자동갱신이 불가능한 환경(WebtoB 수동 운영 등), OV/EV 요구

Let’s Encrypt (certbot)

# 웹서버가 이미 80 포트로 서비스 중이면 (webroot 방식)
sudo certbot certonly --webroot -w /var/www/html -d 새도메인 -d www.새도메인

# 와일드카드가 필요하면 DNS-01 (DNS 제공자 플러그인 필요)
sudo certbot certonly --dns-cloudflare -d '*.새도메인' -d 새도메인

발급된 파일은 /etc/letsencrypt/live/새도메인/에 생긴다.

파일 용도
fullchain.pem 서버 인증서 + 중간 인증서. 서버 설정은 대부분 이 파일을 쓴다
privkey.pem 개인키
cert.pem / chain.pem leaf 단독 / 체인 단독. 구버전 Apache처럼 따로 지정할 때 쓴다

구매 인증서는 CSR부터

# 개인키 + CSR 생성 (RSA 2048)
openssl req -new -newkey rsa:2048 -nodes \
  -keyout 새도메인.key -out 새도메인.csr \
  -subj "/C=KR/ST=Seoul/O=회사명/CN=새도메인"

# CSR 내용 확인 후 발급 기관에 제출
openssl req -in 새도메인.csr -noout -text | head -20

발급 기관은 보통 서버 인증서, 중간(체인) 인증서, 루트를 준다. 서버에 필요한 건 서버 인증서와 중간 인증서이고, 루트는 배포하지 않는 게 정상이다. 이유는 체인 구조 글에 있다.

받은 파일 형식이 제각각이면

# PEM 인지 확인 (-----BEGIN 으로 시작하면 PEM)
head -1 받은파일.crt

# DER → PEM
openssl x509 -inform der -in 받은파일.cer -out 도메인.crt.pem

# fullchain 만들기 (서버 인증서 + 중간 순서)
cat 도메인.crt.pem 중간.crt.pem > fullchain.pem

# IIS 용 PFX (개인키 포함)
openssl pkcs12 -export -out 도메인.pfx -inkey 도메인.key -in fullchain.pem

# 개인키-인증서 짝 확인 (해시 일치해야 함)
openssl x509 -in 도메인.crt.pem -noout -pubkey | openssl sha256
openssl pkey -in 도메인.key -pubout | openssl sha256

서버별 설치

발급이 끝나면 Nginx, Apache, Tomcat, IIS, WebtoB 가이드의 “신규 도메인 인증서 설치” 절로 넘어간다. 설치한 뒤 진단 툴에서 체인, 만료, 보안 등급을 확인한다.