CentOS 7 에 yum 으로 letsencrypt SSL 적용하기 > 개발

본문 바로가기
사이트 내 전체검색

개발

CentOS 7 에 yum 으로 letsencrypt SSL 적용하기

페이지 정보

profile_image
작성자 관리자 (61.♡.222.236)
댓글 0건 조회 1,986회 작성일 19-05-11 10:50

본문

CentOS Apache 환경에서 let's encrypt 를 적용하는 작업을 정리해 보았다.


1. 설치

소스로 설치하는 방법도 있으나, yum 으로 설치를 하는 방법이다.
참고로, 소스로 설치하는 방법은 아래에 있다.
https://www.baragi.net/bbs/board.php?bo_table=server&wr_id=8593

아파치 서버가 설치되어 있다는 가정하에, mod_ssl 을 설치한다.
# yum install mod_ssl

certbot 은 EPEL 저장소에 있으므로 epel 저장소를 설치해야 한다.
# yum install epel-release

certbot 설치
# yum install certbot python2-certbot-apache
관련된 python 패키지들이 20개가 넘게 같이 설치가 된다.

웹서버가 nginx 인 경우는 아래와 같이 한다.
# yum install certbot python2-certbot-nginx

버전 확인
# certbot --version


2. 인증서 설치

인증서 설치를 위한 사전작업으로 2가지가 필요하다.
- 인증하는 도메인의 IP 가 해당 서버를 향하고 있어야 한다.
- 아파치 서버에 인증하는 도메인이 virtual host 설정되어 있어야 한다.
 
이제 본격적으로 설치를 해 보자.

# certbot certonly --apache -d domain.com
설명하자면,
certonly : obtain 만 하고 install 은 하지 않는다.
--apache : 아파치 플러그인
-d : 도메인

도메인이 여러개라면 -d 를 계속 붙여서 사용할 수 있다.
ex) certbot certonly --apache -d a.domain.com -d b.domain.com -d c.comain.com

그러면, 확인창이 3가지 정도 나오는데,
이메일을 입력하라고 하고, 사용동의하는 것, 이메일을 공유하겠냐? 등이 나온다.

확인해 주면, 아파치 설정파일들 중에서 virtual host 와 관련된 것들을 몇개 보여주면서 선택하라고 한다.
아마도 관련 파일이 1개밖에 없다면, 그냥 진행하지 않을까 생각된다.

선택해 주면, 드디어 종료하고 마치게 된다.

설정파일 및 관련파일들의 위치는 다음과 같다.
/etc/letsencrypt/
/var/log/letsencrypt/

아파치 설정
[code]
<VirtualHost *:443>
DocumentRoot 웹루트경로
ServerName 도메인명:443
.
SSLEngine on
.
SSLCertificateFile /etc/letsencrypt/live/도메인명/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/도메인명 /privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/도메인명/fullchain.pem       
</VirtualHost>
[/code]


3. 인증서 갱신

인증서는 3개월짜리이므로, 3개월마다 갱신을 해 줘야 한다.
갱신 명령어는 설치명령어와 같다.

# certbot renew

아파치 서버는 별도로 재실행해 주지 않아도 되는 모양이다.
* 참고
갱신시에는 아파치 서버를 재시작 하지 않아도 갱신이 적용되지만,
도메인을 추가하면 아파치를 재시작 해 줘야 되는 모양이다. 



4. 현재 인증된 도메인들 확인하기

여러 도메인의 인증서를 발급받은 경우, 도메인들의 목록을 확인하는 방법이다.
참고로, /etc/letsencrypt 폴더에는 다 뒤져 봐도 도메인 목록 같은 것은 안나온다. ^^
명령어는 다음과 같다.

# certbot certificates

인증이름, 도메인들, 인증서 남은날짜 등등의 정보를 볼 수 있다.



5. 도메인 삭제

하나의 인증서에 여러 도메인이 있을 경우, renew 를 하면 포함된 모든 도메인에 대해서 renew 를 하게 된다.
그런데, 어느 한 도메인이라도 해당 서버에서 없어졌다면, renew 가 되지 않는다.

** 주의 **
이 경우, 해당 도메인을 빼고 나머지 도메인만으로 인증서를 만들어 버리면,
기존의 인증서가 바뀌는 것이 아니고, 새로운 인증서가 만들어져 버린다.
인증서 이름에 -0001 이런식으로 새로운 인증서가 만들어진다.

일단, 잘못해서 새로운 인증서를 만들어 버렸다면, 새로만든 인증서를 삭제한다.
# certbot delete --cert-name xxxxxxxxxx-0001

해결방법은, --cert-name 으로 인증서명을 지정하고, 인증서를 새로 만들면 된다.
그러면, 해당 인증서에 삭제된 도메인이 있는데 remove 하고 새로 인증서를 만들거냐고 물어 본다.
응답해 주면, 새로운 인증서가 만들어진다.
https://certbot.eff.org/docs/using.html?highlight=domain#changing-a-certificate-s-domains

인증서가 변경이 되면, 아파치를 재시작해 주어야 하는 모양이다.
# service httpd restart





* 참고
https://idchowto.com/?p=39231
https://certbot.eff.org/lets-encrypt/centosrhel7-apache.html
https://certbot.eff.org/docs/using.html?highlight=domain#changing-a-certificate-s-domains

추천0

댓글목록

등록된 댓글이 없습니다.

Total 386건 10 페이지
  • RSS

검색


사이트 정보

Copyright © Baragi.Net. All rights reserved.