만약에 80 포트에 돌아가는 웹 서버를 정지할 수 없는 경우 webroot 폴더 경로를 지정해 주면서 인증 기관의 요구 사항을 수행합니다.
여기서 w 옵션의 값으로 들어간 /var/www/example 폴더가 webroot 폴더인데 예를 들어 /var/www/example/tmp.txt 에 파일을 생성하면
http://www.example.com/tmp.txt 로 접근할 수 있게 웹 서버 설정이 된 폴더를 webroot 폴더라고 합니다.
먼저 위 명령어를 입력합니다.
실수로 -d 옵션을 두 개 입력한 것이 아닙니다. 하나는 와일드카드 인증서, 나머지 하나는 hyunsub.kim에 대한 인증서 입니다.
이 두 개는 다른 것이기 때문에 두 개를 꼭 명시해주어야 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator manual, Installer None Obtaining a new certificate Performing the following challenges: dns-01 challenge for hyunsub.kim dns-01 challenge for hyunsub.kim
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NOTE: The IP of this machine will be publicly logged as having requested this certificate. If you're running certbot in manual mode on a machine that is not your server, please ensure you're okay with that.
Are you OK with your IP being logged? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o:
그러면 위와 같은 메시지가 나오는데 Let’sEncrypt 쪽에서 인증서 발급 요청을 하는 아이피를 로깅해도 되겠냐고 물어봅니다.
거절하면 중단되기 때문에 Y를 입력하고 엔터를 누릅니다.
1 2 3 4 5 6 7 8 9
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please deploy a DNS TXT record under the name _acme-challenge.hyunsub.kim with the following value:
CMvPkXSCJK6eMu2oaPtEa2vNEO6SJ_fPtqDU4ZXwhzM
Before continuing, verify the record is deployed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Press Enter to Continue
위와 같은 메시지가 나올텐데 엔터를 한 번 누릅니다.
1 2 3 4 5 6 7 8 9
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please deploy a DNS TXT record under the name _acme-challenge.hyunsub.kim with the following value:
YyOb_PjJYJ_JIR-EqkJKhNBHKKqmHhwkapgG6KpURUM
Before continuing, verify the record is deployed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Press Enter to Continue
이제 엔터를 누르면 안 됩니다!!
또 위와 같은 메시지가 나옵니다. 하나는 *.hyunsub.kim 에 대한 것이고, 나머지 하나는 hyunsub.kim 에 대한 것입니다.
각각의 두 문자열을 본인이 사용하고 있는 DNS 제공 업체의 관리툴에 가서 TXT 타입으로 등록해줍니다.
저는 가비아를 사용하고 있기 때문에 아래와 같이 설정해주었습니다.
해당 내용이 DNS 서버에 반영되기까지 시간이 걸리기 때문에 바로 엔터를 누르면 안 됩니다!!!
위와 같이 ANSWER SECTION에 두 문자열이 잘 뜨면 작업을 진행하던 터미널에 엔터를 누릅니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Waiting for verification... Cleaning up challenges
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/hyunsub.kim/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/hyunsub.kim/privkey.pem Your cert will expire on 2021-07-11. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
그러면 위와 같이 뜨면서 와일드카드 인증서 발급이 완료되었습니다!
인증서 갱신
인증서 갱신할 때는 인증서 발급할 때와 같은 명령어를 입력하면 됩니다. Certbot이 알아서 처리해줍니다.
Generating a RSA private key .......+++++ .....................................................................................................+++++ writing new private key to 'selfsigned.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:KR State or Province Name (full name) [Some-State]:Seoul Locality Name (eg, city) []:Seoul Organization Name (eg, company) [Internet Widgits Pty Ltd]:Hyunsub Organizational Unit Name (eg, section) []:Hyunsub Common Name (e.g. server FQDN or YOUR name) []:home.hyunsub.kim Email Address []:embrapers263@gmail.com
여기서 생성된 selfsigned.crt는 인증서, selfsigned.key는 개인 키입니다.