Let’s Encrypt - 윈디하나의 솔라나라
|
PATH
경로에 설치한 OpenSSL 이 실행되도록 수정해야 한다. 정상적으로 설정되었다면 아래와 같이 출력된다.
windy@wl ~ $ which openssl /usr/local/ssl/bin/openssl
PATH
경로상의 wget(1)이 실행 가능한지 확인한다. 윈디하나의 솔라나라: 솔라리스 11 기본 설정 - 솔라나라용 설정에 나와있는대로 설정했다면 아래와 같이 출력된다.
windy@wl ~ $ which wget /usr/local/bin/wget
임의의 디렉토리에 설치 스크립트를 다운로드 받는다.
windy@wl ~ $ mkdir acme windy@wl ~ $ cd acme windy@wl ~/acme $ wget -o acme https://get.acme.sh
설치 스크립트를 실행시킨다.
windy@wl ~/acme $ export ACME_USE_WGET=1 windy@wl ~/acme $ bash acme 1) windy@wl ~/acme $ cd ~/.acme.sh windy@wl ~/.acme.sh $ acme.sh --set-default-ca --server letsencrypt 2)1)
~/.acme.sh/
디렉토리가 생성되며 acme.sh
스크립트 가 생성된다. 모든 인증서는 이 디렉토리에 저장된다.letsencrypt으로 세팅한다. 이 문서는 Let's Encrypt 기준으로 작성되어있다.
acme.sh
를 실행시키면 된다.
windy@wl ~/.acme.sh $ ./acme.sh --issue --keylength 4096 -d www.solanara.net -w /DOCUMENTROOT/OF/HTTP/WWW.SOLANARA.NET 1) windy@wl ~/.acme.sh $ ./acme.sh --issue --keylength ec-384 -d www.solanara.net -w /DOCUMENTROOT/OF/HTTP/WWW.SOLANARA.NET 2)1) RSA 인증서가 발급된다. 발급되는 위치는
~/.acme.sh/www.solanara.net
이다.~/.acme.sh/www.solanara.net_ecc
이다.acme.sh
의 주요 파라메터는 아래와 같다.
--issue
는 인증서만 받는 옵션이다.-d
는 도메인을 의미한다. 발급받을 도메인 만큼 여러번 사용할 수 있다.-w
는 웹 서버의 해당 도메인에서 사용하는 DocumentRoot 디렉토리 위치를 의미한다. 디렉토리에 쓰기 권한이 필요하다.--keylength
는 RSA 인증서 키의 길이를 나타낸다. 이 파라메터를 사용해 ECC 인증서를 발급받을 수 있다. ECC에서 지원되는 값은 ec-256, ec-384, ec-521 이지만 ec-521 는 현재 Let’s Encrypt 에서 지원되지 않는다.--renew
는 인증서를 강제로 리뉴얼 할 때 사용한다. (강제로 리뉴얼 할 필요 없다)--force
는 파일을 강제로 덮어쓸 때 사용한다.--ecc
는 --renew 파라메터 사용시 ecc 인증서를 리뉴얼 할 때 사용한다.--upgrade
는 acme.sh 를 업그레이드 할 때 사용한다.--auto-upgrade
는 자동업그레이드를 활성화할 때 사용한다. 비활성화 하려면 --auto-upgrade 0
와 같이 사용한다.windy@wl ~ $ ls -al ~/.acme.sh/www.solanara.net -rw-r--r-- 1 windy staff 1.6K 7월 21일 19:39 ca.cer -rw-r--r-- 1 windy staff 3.4K 7월 21일 19:39 fullchain.cer -rw-r--r-- 1 windy staff 1.8K 7월 21일 19:39 www.solanara.net.cer -rw-r--r-- 1 windy staff 576 7월 21일 19:39 www.solanara.net.conf -rw-r--r-- 1 windy staff 940 7월 21일 19:39 www.solanara.net.csr -rw-r--r-- 1 windy staff 175 7월 21일 19:39 www.solanara.net.csr.conf -rw-r--r-- 1 windy staff 1.6K 7월 21일 19:39 www.solanara.net.key windy@wl ~ $ ls -al ~/.acme.sh/www.solanara.net_ecc -rw-r--r-- 1 windy staff 1647 3월 2일 16:28 ca.cer -rw-r--r-- 1 windy staff 3209 3월 2일 16:28 fullchain.cer -rw-r--r-- 1 windy staff 1562 3월 2일 16:28 www.solanara.net.cer -rw-r--r-- 1 windy staff 583 3월 2일 16:28 www.solanara.net.conf -rw-r--r-- 1 windy staff 493 3월 2일 16:28 www.solanara.net.csr -rw-r--r-- 1 windy staff 175 3월 2일 16:28 www.solanara.net.csr.conf -rw-r--r-- 1 windy staff 359 3월 2일 16:28 www.solanara.net.key크론에 아래와 같이 자동으로 등록된다.
windy@wl ~/.acme.sh $ crontab -l 10 0 * * * /export/home/windy/.acme.sh/acme.sh --cron --home /export/home/windy/.acme.sh > /dev/null
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:!DHE:!SSLv3:!SSLv2:!aNULL:!MD5 SSLHonorCipherOrder On SSLCertificateFile "/export/home/windy/.acme.sh/www.solanara.net/www.solanara.net.cer" SSLCertificateFile "/export/home/windy/.acme.sh/www.solanara.net_ecc/www.solanara.net.cer" SSLCertificateKeyFile "/export/home/windy/.acme.sh/www.solanara.net/www.solanara.net.key" SSLCertificateKeyFile "/export/home/windy/.acme.sh/www.solanara.net_ecc/www.solanara.net.key" SSLCertificateChainFile "/export/home/windy/.acme.sh/www.solanara.net/ca.cer"아파치 웹 서버에서, SSL 인증서및 https 설정에 대한 전반적인 사항은 윈디하나의 솔라나라: 아파치 웹 서버 (작성중)를 참조하자.
발급된 인증서는 아래와 같은 계층(hierarchy)을 가지고 있다.
기존에 발급했던 인증서는 DST 에서 발급한 루트 인증서를 사용했었지만, 지금은 ISRG 의 인증서를 사용한다. 인증서 체인에 대해서는 Transitioning to ISRG's Root를 읽어보자.
SSL 인증서가 제대로 설치되어있는지 Qualys SSL Lab에서 검사해보자. 솔라나라의 경우 아래와 같이 나온다.
특정 도메인의 모든 서브 도메인에서 사용할 수 있는 인증서를 와일드카드 인증서라 한다. 예를 들어, example.com 도메인 소유자가 www.example.com, blog.example.com 에 https 를 제공하려면 각각의 도메인 마다 인증서를 발급받아 웹서버에 설치해야 했지만, example.com 의 와일드카드 인증서는 *.example.com 도메인에 대해 인증해줄 수 있기 때문에 하나의 인증서만 발급받아 웹서버에 설정할 수 있게 된다.
예전엔 와일드카드 인증서가 일반 인증서보다 훨씬 비쌌지만, Let's Encrypt 에서 무료로 와일드카드 인증서를 발급가능해졌기 때문인지는 몰라도, 요즘에는 가격이 매우 싸졌다.
windy@wl ~/.acme.sh $ ./acme.sh --issue --force --keylength ec-384 -d solanara.net -d "*.solanara.net" --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please [2021년 05월 6일 목요일 오후 0시 00분 00초 KST] The domain 'solanara.net' seems to have a ECC cert already, please add '--ecc' parameter if you want to use that cert. [2021년 05월 6일 목요일 오후 0시 00분 00초 KST] Using CA: https://acme-v02.api.letsencrypt.org/directory [2021년 05월 6일 목요일 오후 0시 00분 00초 KST] Creating domain key [2021년 05월 6일 목요일 오후 0시 00분 00초 KST] The domain key is here: /export/home/windy/.acme.sh/solanara.net/solanara.net.key [2021년 05월 6일 목요일 오후 0시 00분 00초 KST] Multi domain='DNS:solanara.net,DNS:*.solanara.net' [2021년 05월 6일 목요일 오후 0시 00분 00초 KST] Getting domain auth token for each domain [2021년 05월 6일 목요일 오후 0시 00분 00초 KST] Getting webroot for domain='solanara.net' [2021년 05월 6일 목요일 오후 0시 00분 00초 KST] Getting webroot for domain='*.solanara.net' [2021년 05월 6일 목요일 오후 0시 00분 00초 KST] Add the following TXT record: [2021년 05월 6일 목요일 오후 0시 00분 00초 KST] Domain: '_acme-challenge.solanara.net' [2021년 05월 6일 목요일 오후 0시 00분 00초 KST] TXT value: 'j******************************************' [2021년 05월 6일 목요일 오후 0시 00분 00초 KST] Please be aware that you prepend _acme-challenge. before your domain [2021년 05월 6일 목요일 오후 0시 00분 00초 KST] so the resulting subdomain will be: _acme-challenge.solanara.net [2021년 05월 6일 목요일 오후 0시 00분 00초 KST] Add the following TXT record: [2021년 05월 6일 목요일 오후 0시 00분 00초 KST] Domain: '_acme-challenge.solanara.net' [2021년 05월 6일 목요일 오후 0시 00분 00초 KST] TXT value: 'b******************************************' [2021년 05월 6일 목요일 오후 0시 00분 00초 KST] Please be aware that you prepend _acme-challenge. before your domain [2021년 05월 6일 목요일 오후 0시 00분 00초 KST] so the resulting subdomain will be: _acme-challenge.solanara.net [2021년 05월 6일 목요일 오후 0시 00분 00초 KST] Please add the TXT records to the domains, and re-run with --renew. [2021년 05월 6일 목요일 오후 0시 00분 00초 KST] Please check log file for more details: /export/home/windy/.acme.sh/acme.sh.log
windy@wl ~/.acme.sh $ sudo vi /var/named/named.solanara.net.zone ... _acme-challenge.solanara.net. IN TXT b****************************************** _acme-challenge.solanara.net. IN TXT j****************************************** windy@wl ~/.acme.sh $ sudo svcadm restart dns/server정상적으로 설정되었다면 아래와 같이 확인해볼 수 있다.
windy@wl ~/.acme.sh $ nslookup -q=TXT _acme-challenge.solanara.net ... _acme-challenge.solanara.net text = "j******************************************" _acme-challenge.solanara.net text = "b******************************************"DNS 정보가 공용 DNS 서버까지 전파되도록 10분 이상 기다리자.
windy@wl ~/.acme.sh $ nslookup -q=TXT _acme-challenge.solanara.net 8.8.8.8 Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: _acme-challenge.solanara.net text = "j******************************************" _acme-challenge.solanara.net text = "b******************************************"
windy@wl ~/.acme.sh $ ./acme.sh --issue --force --keylength ec-384 -d solanara.net -d "*.solanara.net" --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please ... [2021년 05월 6일 목요일 오후 0시 10분 00초 KST] Cert success. ... [2021년 05월 6일 목요일 오후 0시 10분 00초 KST] Your cert is in /export/home/windy/.acme.sh/solanara.net_ecc/solanara.net.cer [2021년 05월 6일 목요일 오후 0시 10분 00초 KST] Your cert key is in /export/home/windy/.acme.sh/solanara.net_ecc/solanara.net.key [2021년 05월 6일 목요일 오후 0시 10분 00초 KST] The intermediate CA cert is in /export/home/windy/.acme.sh/solanara.net_ecc/ca.cer [2021년 05월 6일 목요일 오후 0시 10분 00초 KST] And the full chain certs is there: /export/home/windy/.acme.sh/solanara.net_ecc/fullchain.cer
RSS ATOM XHTML 5 CSS3 |
Copyright © 2004-2024 Jo HoSeok. All rights reserved. |