운영체제 Let's encrypt 설치 메뉴얼
페이지 정보
작성자 운영자쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 2건 조회 7,422회 작성일 21-02-24 02:02본문
1. 인증서 발급 프로그램 설치하기
- Ubuntu 14.04 일 경우
# cd /root # wget https://dl.eff.org/certbot-auto # mv certbot-auto /usr/bin/letsencrypt # chmod 755 /usr/bin/letsencrypt
- Ubuntu 16.04 일 경우 (또는 그 이후 버전, 18.04 등)
# apt-get install letsencrypt
2. 인증서 발급 프로그램을 사용하여 인증서 발급받기
인증서는 Domain Control Validation 을 거쳐야 발급받을 수 있다. 당신이 도메인이 없다면 인증서를 발급받을 수 없다.
Domain Control Validation 은 주로 다음의 3가지 방법으로 이루어진다.
참고 : Domain Control Validation 의 3가지 방법 (https://docs.gandi.net/en/ssl/common_operations/dcv.html)
Let’s Encrypt 는 위의 도메인 인증방법 중 3번째인 Validation by file 를 사용하여 인증한다. (최근 Let’s Encrypt 에서 Validation by DNS 방식도 지원하도록 변경되었다. 하지만 이 방법은 이 글에서 다루지 않겠다.)
따라서 먼저 해당 도메인에 대한 HTTP 접속이 가능해야 한다.
서버를 처음 세팅하는 경우 HTTP 를 먼저 설정한 다음에 -> 인증서를 발급받고 -> HTTPS 를 추가 설정하는 단계를 거쳐야 할 것이다.
이미 HTTPS 를 사용하고 있을 경우 -> 인증서를 발급받고 -> HTTPS 인증서 교체 하는 단계를 거쳐야 할 것이다.
예제
명령 실행시 1회에 한해 인증관련 프로그램이 추가설치될 수 있다.
*예제 1 :
letsencrypt certonly --webroot --webroot-path=/home/myuser1/www -d myuser1.com
*예제 2 :
letsencrypt certonly --webroot --webroot-path=/home/myuser2/www -d myuser2.com
*예제 3 : * 널리 사용됨 (원본 도메인과 www 도메인 동시인증)
letsencrypt certonly --webroot --webroot-path=/home/myuser3/www -d myuser3.com -d www.myuser3.com
*예제 4 :
letsencrypt certonly --webroot --webroot-path=/home/myuser4/www -d myuser4.com -d www.myuser4.com -d blog.myuser4.com -d myhome.myuser4.com
* 명령어 설명
-d 는 도메인명을 지정하면 된다. 최대 100개의 도메인 이름을 지정할 수 있다. (한 인증서가 서로다른 100개의 도메인 인증을 할 수 있음) 일반적으로는 기본도메인과 www 도메인 두개를 지정한다.
-webroot 는 웹인증을 받을 것이라는 것이다. 외부 인증프로그램이 -d 에 지정된 도메인 사이트에 접속한다.
-webroot-path 는 웹루트의 경로이다. 보통 index 페이지가 위치하는 경로이다. 인증 프로그램이 이 경로에 임시 랜덤 파일을 생성하고, 외부 인증프로그램이 이 파일을 접근할 수 있다면 Domain Validation 이 되는 것이다.
명령이 실행되면 다음 화면이 표시된다.
비상연락처 : 인증에 문제가 생겼거나, 인증서 만료기간이 가까웠을때 갱신 알림 메일을 수신할 주소이다.
약관에 동의하면 즉시 인증서가 발급된다.
발급에 실패했다면 외부 접속이 문제가 있거나 -webroot-path 를 올바르게 입력하지 않았을 것이다.
Let’s Encrypt 인증 오류 발생시 다음의 사항을 확인한다.
다음의 문서로 이동해서
# Allow Lets Encrypt Domain Validation Program
설정이 되어있는지 확인하여라.
Apache 사용자의 경우 : https://blog.lael.be/post/73#apache2.conf
Nginx 사용자의 경우 : https://blog.lael.be/post/2600#myuser1.conf
- Ubuntu 14.04 발급성공
- Ubuntu 16.04 발급성공
/etc/letsencrypt/live/[인증서명]/ 위치에 발급된다.
cert.pem - 인증서 파일
chain.pem - 인증서 발급자 파일
fullchain.pem - cert.pem 과 chain.pen 을 하나로 합쳐놓은 파일
privkey.pem - 인증암호를 해독하는 개인키
Apache2 서버에서는 cert.pem, chain.pem, privkey.pem 을 사용합니다.
Nginx 서버에서는 fullchain.pem, privkey.pem 을 사용합니다.
Apache2 적용방법 : https://blog.lael.be/post/73 13번 항목을 참조한다.
1 2 3 4 5 6 7 8 9 | SSLEngine on SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA SSLHonorCipherOrder on SSLCertificateFile "/etc/letsencrypt/live/mysitename.com/cert.pem" SSLCertificateKeyFile "/etc/letsencrypt/live/mysitename.com/privkey.pem" SSLCertificateChainFile "/etc/letsencrypt/live/mysitename.com/chain.pem" |
Nginx 적용방법 : https://blog.lael.be/post/2600 16번 항목을 참조한다.
dhparam.pem 파일은 한번만 생성하면 된다. (중복하여 생성해도 문제가 발생하지는 않음)
관련링크
- https://blog.lael.be/post/5107 4249회 연결