IT/잡다구리

[SSL] Let's Encrypt SSL 인증서 설치 Centos8 , crontab

월공 2021. 2. 22. 14:57
728x90
300x250

센토스8 에서 홈페이지 https 를 위한 Let's Encrypt 설치 방법 간단하게 포스팅합니다.

 

Let's Encrypt 설치

sudo dnf install epel-release

혹시 아래처럼 오류 뜨면서 안되면 

Failed to set locale, defaulting to C.UTF-8
CentOS-8 - AppStream                                                                                                                                                                        70  B/s |  38  B     00:00
Error: Failed to download metadata for repo 'AppStream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

아래 명령어 실행 mirrorlist 못찾아서 발생하는 문제라 조정해줘야됨

sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*
sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*

#root 계정이면 sudo 필요없음
sudo dnf install certbot python3-certbot-apache mod_ssl

혹시 위에꺼 안되면

yum update 진행 후

yum install certbot python3-certbot-apache mod_ssl
방법 1
sudo certbot --apache -d example.com

방법 2 (서브도메인 추가하는 방법)
sudo certbot --apache -d example.com -d www.example.com

방법 3
#현재 서버에서 서비스중인 도메인들 즉 https 적용할수있는 도메인 리스트를 나열해준다
sudo certbot --apache

방법 1 진행할시에 초기 세팅화면

여튼 세팅할수있는 도메인이 쭉 나오게되는데 숫자로 선택해서 진행하다보면 혹여나 아래와 같은 에러가 날수있는데 제 경우엔 방화벽이 막혀있어서 그랬습니다.

* 443도 열어줌

방화벽 조정하고 진행하니 정상발급됨을 확인했습니다.

 

여튼 발급 후에 아래 링크 참고해서 conf 수정을 해줘야하고

https://bug41.tistory.com/81

 

[Centos8 Apache] SSL 적용 후 https redirect , https 강제 이동

ssl 적용이 완료되었다하더라도 http 가 있고 https 가 있다 당연히 https 로 강제로 보내줘야 하는데 httpd.conf 에서 해당 부분을 조정할수있다. 아래처럼 httpd.conf 의 해당 도메인의 정보를 갖고있는 vi

bug41.tistory.com

 

수정 해준 이후에 안전하지 않음 페이지로 이동 뭐시기 창이 계속 뜬다면 httpd.conf 파일 하단에

Include /etc/httpd/conf/httpd-le-ssl.conf 

를 추가해주면 된다.

certbot 이 깔리면서 자동으로 httpd.conf 옆에 생긴듯하다


적용이 잘되었는지 확인하는 방법은 아래 링크 뒤에 방금 적용한 내 도메인을 등록하면된됩니다.

https://www.ssllabs.com/ssltest/analyze.html?d=example.com

적용이 잘되었는지 확인하는 방법은 아래 링크 뒤에 방금 적용한 내 도메인을 등록하면되며,

한 5분 정도 걸렸었습니다.

 

 

그러고 SSL 적용한 사이트를 접속해보면 도메인 이름 옆에 자물쇠 모양이 생긴걸 확인할수있는데

인증서 : (유효) 부분을 클릭해서 들어가보면 작은 팝업창이 뜹니다.

내용 일부 캡쳐

5/23일까지 사용할순 있지만 그냥 1개월마다 갱신 해주는 자동 crontab 명령어 추가

 

 

//현재 사용중인 크론 목록
crontab -l

//크론 수정
crontab -e


//매월 1일 새벽 3시에 certbot renew 실행하고 , 아파치 재시작
0 3 1 * * /usr/bin/certbot renew --renew-hook="systemctl restart httpd"

 

일수확인

 certbot certificates


22.04.15 내용추가

ssl 발급시 연결할 도메인이 한글이라면 퓨니코드로 변환해서 넣어줘야하고,

그냥 브라우저 도메인란에 한글 도메인 치고나서 복사하면 알아서 퓨니코드로 변환됨

복사

http://xn--9i1bl3bf4lr4t7lghjc.com/

그리고 이건 아파치만의 문제인지는 모르겠으나

httpd.conf 에서 프로젝트 폴더랑 도메인이랑 연결 설정해줄때

프로젝트 폴더명이 한글이면 발급에 문제생기니까, 해당 홈페이지 폴더명은 영어로하도록 하자

한글로 하니까 자꾸 아래와 같은 에러가 나옴

Error while running apachectl configtest.

httpd: Syntax error on line 622 of /etc/httpd/conf/httpd.conf: Syntax error on line 313 of /etc/httpd/conf/httpd-le-ssl.conf: Could not open configuration file /etc/httpd/</VirtualHost>: No such file                                      or directory


22.04.22 내용추가

인증서 삭제하는 방법

certbot revoke --cert-path /etc/letsencrypt/archive/[도메인 이름]/cert1.pem

Y 눌러주면 삭제 끝


22.11.27 내용추가
새로운 서버 (centos7) 환경에서 아래와 같은 오류 발생

The requested apache plugin does not appear to be installed

 

//업데이트 한번 하고
yum update
//아래 설치
yum install python-certbot-apache

설치 진행후 정상 작동하는것 확인

728x90
300x250