원문 : 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 |