[목차] [[https://letsencrypt.org/|공식 홈페이지]] == 개요 == Let's Encrypt는 사용자에게 '''무료'''로 [[TLS]] 인증서를 발급해주는 비영리기관이다. 몇 가지 TLS 인증서 종류 중에서 완전 자동화가 가능한 DV (Domain Validated, 도메인 확인) 인증서를 무료로 발급한다. [[모질라 재단]], [[페이스북]], [[구글]] 등 많은 업체가 스폰서로 등록되어 있다. 2019-03-11 [[https://letsencrypt.org/2019/03/11/acme-protocol-ietf-standard.html||블로그]]에 이제는 ACME 프로토콜이 IETF표준(RFC 8555)으로 등재되었다고 띄웠다. 루트 도메인 (네이키드 도메인), 특정 서브 도메인 뿐만 아니라, 하나의 인증서로 모든 서브 도메인에 사용 가능한 *.example.com 형태의 와일드카드 서브 도메인 인증서도 무료로 발급하므로 그 활용이 폭넓다. 발급된 인증서는 유효기간이 90일이며 만료 30일 전부터 갱신할 수 있다. 갱신 가능 횟수는 무제한이다. 이런 서비스가 필요한 이유는 인증서 가격이 3만원에 이르고 와일드카드의 경우 15만원에 이르러 1년동안 제공되지만 결제는 --예산관리--하여간 엔지니어에겐 귀찮고 번거로운 일이다. 최소한의 이런 불편한 부분을 자동화해준다. == 사용방법 == 여유가 된다면 [[https://letsencrypt.org/getting-started/]](영문) 읽어본뒤에 적용하면 된다. 상당한 커스텀세팅을 위해서는 문서의 클라이언트 옵션을 보는편이 좋다. 대부분의 런타임 플렛폼과 [[CLI]] LIB 타입이 나와있으므로 새로 구현 해야 하는 경우는 거의 없다. 클라이언트는 [[Python]] 기반이다. === 인증서 발급 방식 === Let's Encrypt가 인증서를 발급하는 방식에는 3가지가 있으며, 주로 Let's Encrypt가 추천하는 인증서 발급 프로그램인 [[https://certbot.eff.org/|certbot]]을 사용한다. * standalone [br] standalone 명령어를 사용하면 certbot에 내장된 세팅을 사용해서 도메인만으로 인증서가 발급 되고, 갱신 절차도 자동으로 처리된다. *.example.com 형태의 와일드카드 서브 도메인 인증서는 발급할 수 없다. * webroot [br] webroot 명령어를 사용하면 자신의 웹 서버에서 작동중인 웹사이트를 이용해서 인증서를 발급하고, 갱신 절차도 자동으로 처리된다. *.example.com 형태의 와일드카드 서브 도메인 인증서는 발급할 수 없다. * dns [br] 도메인이 연결된 DNS에 TXT 레코드를 생성해서 인증서를 발급하는 방식으로, 인증서 발급 과정에 웹 서버가 필요 없고 *.example.com 형태의 와일드카드 서브 도메인 인증서를 발급할 수 있다. * 매번 인증서를 갱신할 때마다 DNS에 TXT 레코드를 새로 생성해야 하므로, 외부에서 TXT 레코드를 입력할 수 있도록 DNS가 API를 제공하는 경우에는 갱신 과정을 자동으로 처리할 수 있다. [[http://blog.minase.moe/2|CloudFlare API를 통한 예시]] * API 가 여의치 않은 경우(웹 패널방식)에는 크롬확장앱으로 만들어쓰거나 직접 웹폼을 전송하여 구현이 가능하다. [[https://github.com/buschtoens/le-challenge-cloudflare|#cloudflare(node)]] , [[https://github.com/publishlab/node-acme-client#acme-node]] 단독 노드 플랫폼에서 작동시키기 원하는 경우 쓴다. auto모드에서는 dns-01 스펙에 문제가 있으므로 쓰지 말아야한다. === 간단한 방법 === 1. [[https://certbot.eff.org/|Certbot 홈페이지]]로 들어가서 자신의 서버 사양을 선택하면 설명 화면이 나온다. 2. 문서를 읽으면서 터미널에 명령어를 친다. 3. 몇몇 정보를 입력하면 알아서 설정해주고, 3개월 마다 갱신도 자동으로 해준다. 또는 사전에 빌트인 된 웹호스팅을 사용하는 방법이 있다. === 이전 방법 === [[우분투|ubuntu]]에서 테스트 됨. 1. [[Git|git]] clone https://github.com/certbot/certbot 을 입력하여 클라이언트를 받는다. 2. 다운로드 받은 폴더에 들어간다. 3. (apache나 nginx의 virtual host를 사용할 경우) 각각 {{{./certbot-auto --apache -d (도메인. -d 도메인 이름을 추가로 입력할 수 있다.)}}} {{{./certbot-auto --nginx -d (도메인)}}} (standalone) {{{./certbot-auto certonly --standalone --email (이메일) -d (도메인)}}} 4. (standalone으로 발급받았을시) apache나 nginx 등에 연결한다. 인증서의 기본 경로는 /etc/letsencrypt/live/(도메인 이름)/ 폴더이다. [[분류:컴퓨터 보안]]