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 -alh ~/.acme.sh/www.solanara.net -rw-r--r-- 1 windy staff 1.76K 10월 29 22:42 ca.cer -rw-r--r-- 1 windy staff 3.83K 10월 29 22:42 fullchain.cer -rw-r--r-- 1 windy staff 2.07K 10월 29 22:42 www.solanara.net.cer -rw-r--r-- 1 windy staff 706 10월 29 22:42 www.solanara.net.conf -rw-r--r-- 1 windy staff 1.62K 10월 29 22:42 www.solanara.net.csr -rw-r--r-- 1 windy staff 151 10월 29 22:42 www.solanara.net.csr.conf -rw-r--r-- 1 windy staff 3.17K 5월 31 13:57 www.solanara.net.key windy@wl ~ $ ls -alh ~/.acme.sh/www.solanara.net_ecc -rw-r--r-- 1 windy staff 1.53K 10월 29 22:42 ca.cer -rw-r--r-- 1 windy staff 2.81K 10월 29 22:42 fullchain.cer -rw-r--r-- 1 windy staff 1.28K 10월 29 22:42 www.solanara.net.cer -rw-r--r-- 1 windy staff 708 10월 29 22:42 www.solanara.net.conf -rw-r--r-- 1 windy staff 513 10월 29 22:42 www.solanara.net.csr -rw-r--r-- 1 windy staff 151 10월 29 22:42 www.solanara.net.csr.conf -rw-r--r-- 1 windy staff 288 3월 4 2022 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 TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-256-GCM-SHA384: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/fullchain.cer" SSLCertificateKeyFile "/export/home/windy/.acme.sh/www.solanara.net/www.solanara.net.key" SSLCertificateFile "/export/home/windy/.acme.sh/www.solanara.net_ecc/fullchain.cer" SSLCertificateKeyFile "/export/home/windy/.acme.sh/www.solanara.net_ecc/www.solanara.net.key"아파치 웹 서버에서, SSL 인증서및 https 설정에 대한 전반적인 사항은 윈디하나의 솔라나라: 아파치 웹 서버 (작성중)를 참조하자.
SSLCipherSuite
를 위와 같이 설정하면, 아래와 같은 암호화 알고리즘만 허용된다.발급된 인증서는 아래와 같은 계층(hierarchy)을 가지고 있다.
인증서 체인에 대해서는 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-2025 Jo HoSeok. All rights reserved. |