원문 : https://www.clien.net/service/board/cm_nas/11884520


무료인증서 - 3개월 마다 갱신 필요.

Wildcard 가능해짐(2018년3월)

https://community.letsencrypt.org/t/acme-v2-and-wildcard-certificate-support-is-live/55579


DNS 확인 방법으로는 인증서 자동 업데이트가 되지 않으므로, 추가

며칠 후면 인증서 발행 툴들이 보다 쉽게 적용할 수 있도록 업데이트 되리라 믿습니다.


Wildcard이기 때문에 서버로 인증받는게 아닌 도메인의 TXT값을 직접 입력해주어야한다.

아래 과정 중 나오는 값은 _acme-challenge 호스트네임으로 TXT로 입력해주면 된다.

_acme-challenge.opencloud.kr


1. 서버 접속 후 루트 접근 

$ sudo su -


2. certbot 설치

# git clone  https://github.com/certbot/certbot

# cd certbot

# sudo ./certbot-auto --os-packages-only    #여기서 y를 눌러서 필수 패키지를 설치한다.

# ./tools/venv.sh


3. certbot 으로 인증서 발행

# source ./venv/bin/activate

# 도메인명과 이메일을 수정해서 아래 명령을 시행합니다.

sudo ./venv/bin/certbot -d *.도메인명 --email 이메일 --text --agree-tos --server  https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns --expand --renew-by-default  --manual-public-ip-logging-ok certonly


처음 위 명령을 실행하면 이메일을 등록하라고 합니다. Y 를 누릅니다.

다음으로 certbot 프로그램이 _acme-challenge.도메인명  에 입력할 DNS TXT를 화면상에 보여 줍니다.

_acme-challenge.[도메인명] DNS TXT

도메인에 해당값을 셋팅한 후 엔터를 누르면 해당 도메인을 검증하고 인증서가 발행됩니다.

재실행시 TXT값이 바뀌므로 도메인 셋팅 후 엔터를 누르도록 합니다.


추가) 인증서 확인

# ./venv/bin/certbot certificates

인증서 위치

# /etc/letsencrypt/live/[도메인명]


# 인증서 폴더 접근 권한 설정

sudo chown [사용자명] /etc/letsencrypt/live


--------------------------------------------------------------------------------------------------------------------------

*추가 정보1: PEM ->  PFX (IIS 서버용으로 변환)

sudo openssl pkcs12 -passout pass:[패스워드] -export -out ./cert.pfx -inkey /etc/letsencrypt/live/[도메인명]/privkey.pem -in /etc/letsencrypt/live/[도메인명]/cert.pem -certfile /etc/letsencrypt/live/[도메인명]/chain.pem


변환된 인증서 접근권한 부여


sudo chown [사용자명] ./cert.pfx


*추가 정보2: 와일드카드 외 도메인 등록

익스체인지 서버에서는 와일드카드(*) 도메인 인증서 등록시 에러가 발생하더군요, 아래와 같이 mail을 명시적으로 추가해서 만들어 주니 문제가 없었습니다.

sudo ./venv/bin/certbot -d mail.[도메인명],*.[도메인명]  --email [이메일] --text --agree-tos --server  https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns --expand --renew-by-default  --manual-public-ip-logging-ok certonly


=======================

crontab에 아래 추가

# 매일 리뉴얼 체크를 한다.

0 4 * * * /bin/bash -l -c '/root/certbot/certbot-auto renew --quiet --no-self-upgrade'

# 혹시 리뉴얼된 인증서를 어디 복사해야 한다면 아래 처럼 rsync로 변경 확인 후 복사해 준다.  

5 4 * * * /bin/bash -l -c 'rsync -L --checksum /etc/letsencrypt/live/cloudz.info/privkey.pem /srv/docker/redmine/redmine/certs/redmine.key'

5 4 * * * /bin/bash -l -c 'rsync -L --checksum /etc/letsencrypt/live/cloudz.info/fullchain.pem /srv/docker/redmine/redmine/certs/redmine.crt'


'ETC.' 카테고리의 다른 글

애자일 소프트웨어 개발 선언,  (0) 2018.08.12
TCP 튜닝  (0) 2018.03.30
[리눅스] CentOS 7 타임존 변경  (0) 2018.02.08
Proxy 설정 - nginx 사용하기  (0) 2017.12.14
Subnet BIT  (0) 2017.08.30

+ Recent posts