반응형
--manual 옵션을 사용하지 않고 하는방법은 이전 포스팅에서 해두었다.
이전포스팅 방법이 안될 경우 이번 포스팅을 추천한다
https://lemontia.tistory.com/697
이전 방법과 같이 certbot 이 있어야 한다. 없으면 다음방법으로 다운로드 받는다.
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto
다음의 명령어를 이용해 설정을 시작한다
./certbot-auto certonly --manual --email [이메일] -d [도메인]
위와같이 명령어를 하게되면 질문을 하게 되는데 Agree를 눌러주면 다음과 같은 화면이 뜬다.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Create a file containing just this data:
XFWbgceOCx-3NZc36uRQTtAclpZv9i-yhDyYnhkPR5s.lLIPvOSu22UsRTUocW42u_4Nw4e1n4etHwV71QK3foc
And make it available on your web server at this URL:
http://[도메인]/.well-known/acme-challenge/XFWbgceOCx-3NZc36uRQTtAclpZv9i-yhDyYnhkPR5s5s
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue
위의 내용은 .well-known/acme-challenge/[임의생성값] 을 호출할 때 다음의 값이 리턴되어야 한다
XFWbgceOCx-3NZc36uRQTtAclpZv9i-yhDyYnhkPR5s.lLIPvOSu22UsRTUocW42u_4Nw4e1n4etHwV71QK3foc
무시하고 그냥 Enter를 누르면 다음과 같은 에러가 난다.
Press Enter to Continue
Waiting for verification...
Challenge failed for domain [도메인]
http-01 challenge for [도메인]
Cleaning up challenges
Some challenges have failed.
IMPORTANT NOTES:
- The following errors were reported by the server:
Domain: [도메인]
Type: unauthorized
Detail: Invalid response from
http://[도메인]/.well-known/acme-challenge/cTQ52iFdSr-X3DL5X9yVvkt5sL-LU0kB54UCUYC_uG4
[IP]: "<html>\r\n<head><title>404 Not
Found</title></head>\r\n<body>\r\n<center><h1>404 Not
Found</h1></center>\r\n<hr><center>nginx/1.15.8</ce"
To fix these errors, please make sure that your domain name was
entered correctly and the DNS A/AAAA record(s) for that domain
contain(s) the right IP address.
404 에러가 나면서 허용이 안된것을 알 수 있다. 그래서 해당 URL을 호출하게 될때 리턴할 수 있도록 파일을 설정해 주어야 한다.
인증을 받을때마다 임의값이 변경되기 때문에 내 경우 Enter를 누르기 전까지 진행한 다음 생성값을 참조하여 파일을 만들어야 한다.
여기서는 nginx를 사용하기 때문에 nginx 설정을 수정하였다.
location ^~ /.well-known/acme-challenge/ {
default_type "text/plain";
root /usr/share/nginx/html;
}
/usr/share/nginx/html 에다가 폴더 및 파일을 만든다
mkdir .well-known/acme-challenge
vi XFWbgceOCx-3NZc36uRQTtAclpZv9i-yhDyYnhkPR5s5s
파일안에 다음을 입력한다
XFWbgceOCx-3NZc36uRQTtAclpZv9i-yhDyYnhkPR5s.lLIPvOSu22UsRTUocW42u_4Nw4e1n4etHwV71QK3foc
확실하게 하기 위해 브라우저로 접속하여 해당 메세지를 받는지 확인한다
http://[도메인]/.well-known/acme-challenge/XFWbgceOCx-3NZc36uRQTtAclpZv9i-yhDyYnhkPR5s5s
이제 Enter를 눌러 인증을 받는다
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Create a file containing just this data:
XFWbgceOCx-3NZc36uRQTtAclpZv9i-yhDyYnhkPR5s.lLIPvOSu22UsRTUocW42u_4Nw4e1n4etHwV71QK3foc
And make it available on your web server at this URL:
http://[도메인]/.well-known/acme-challenge/XFWbgceOCx-3NZc36uRQTtAclpZv9i-yhDyYnhkPR5s
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue
Waiting for verification...
Cleaning up challenges
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/[도메인]/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/[도메인]/privkey.pem
Your cert will expire on 2019-07-20. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again. To non-interactively renew *all* of your certificates, run
"certbot-auto renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- 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
자동인증서 갱신은 다음과 같이 설정하면 된다.
해당 인증서는 만료일이 90일이므로 매월 1일에 실행시킨다.
mv ~/certbot-auto /bin
vi /etc/crontab
30 3 1 * * root /bin/certbot-auto renew >> /var/log/ssl-renew.log
service crond restart
# 확인
ps -ef | grep cron
완료
반응형
'공부 > 프로그래밍' 카테고리의 다른 글
[AWS, Springboot] SqsListener 사용 시 pool_size 문제 및 메세지처리 팁 (0) | 2019.06.16 |
---|---|
[java] LocalDateTime(또는 LocalDate)을 Json으로 변환할 때 데이터 포멧 (0) | 2019.05.11 |
[springboot] Spring batch 테스트 시 사용하는 JobLauncherTestUtils 쓸 때 설정법 (0) | 2019.03.29 |
[python3] Flask-SQLAlchemy 사용 시 json 으로 데이터 가공하기 (0) | 2019.03.11 |
[DBMS] 데이터베이스 설계와 중복엔터티(이론대로만 하면 안되는 것) (0) | 2019.03.05 |
댓글