Rocky Linux 9 에 yum dnf 로 letsencrypt SSL 적용 및 인증서 관리 > 개발

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

개발

Rocky Linux 9 에 yum dnf 로 letsencrypt SSL 적용 및 인증서 관리

페이지 정보

profile_image
작성자 관리자 (119.♡.119.69)
댓글 0건 조회 1,286회 작성일 23-08-10 16:49

본문

록키리눅스 9 아파치 2.4 환경에서 let's encrypt 를 적용하는 작업을 정리해 본다.



1. certbot 설치

epel-release 를 먼저 설치해야 한다.

```
# dnf install epel-release
# dnf install certbot python3-certbot-apache
# certbot --version
```
많은 의존 패키지들이 같이 설치가 된다.
관련된 python3-* 패키지들이 10개가 넘게 같이 설치가 된다.

CentOS 8 에서는 python3-certbot-apache 패키지가 없어서 공식 사이트에서 소스를 받아서 설치를 했는데,
록키 9 에서는 dnf 로 설치가 가능해졌다.



2. 인증서 설치

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

```
# certbot certonly --apache --cert-name localhost -d domain.com
```
설명하자면,
certonly : obtain 만 하고 install 은 하지 않는다.
--apache : 아파치 플러그인
--cert-name : 인증서 이름, 나중에 도메인을 추가 삭제 변경할때 필요하다.
-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/

참고로, 인증서 파일은 4가지가 있는데 각각은 다음과 같다.
cert.pem - 인증서 파일
chain.pem - 인증서 발급자 파일
fullchain.pem - cert.pem 과 chain.pem 을 하나로 합쳐놓은 파일
privkey.pem - 인증암호를 해독하는 개인키
* 참고 : https://blog.lael.be/post/5107

그래서, 인증서 파일에 fullchain 을 넣고, 개인키에 privkey 를 넣으면 되는 듯 하다.
서버체인 에는 원래 주석처리 되어 있는 것으로 보아서 fullchain 으로 대체가 되는 모양이다.

CertificateName 은 아래 명령어로 알 수 있다.
# certbot certificates

ㅇ 아파치 설정 - /etc/httpd/conf.d/ssl.conf
[code]
....
SSLCertificateFile /etc/letsencrypt/live/CertificateName/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/CertificateName/privkey.pem
....
[/code]


3. 인증서 갱신(renewal)

인증서는 3개월짜리이므로, 3개월마다 갱신을 해 줘야 한다.
크론작업으로 갱신시 월간작업으로 등록하면 안된다. 주간작업 이하로 설정해야 한다.
참고 : https://www.baragi.net/dev/8779

갱신 명령어는 아래와 같다.
```
# certbot renew
```

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


3-1. 인증서 강제 갱신 --force-renewal

기본적으로, 만료일이 1개월보다 적게 남았을 때 갱신을 해 준다.
1개월보다 많이 남았으면, renewal 해 주지 않는다.
이때, 특별한 상황에서 갱신을 해야 하는 경우가 생길 수 있다.
아래와 같이 --force-renewal 을 추가해 주면, 만료일 상관없이 갱신을 할 수 있다.
```
# certbot renew --force-renewal
```
* 참고 : https://www.boannews.com/media/view.asp?idx=86797



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

여러 도메인의 인증서를 발급받은 경우, 도메인들의 목록을 확인하는 방법이다.
참고로, /etc/letsencrypt 폴더에는 다 뒤져 봐도 도메인 목록 같은 것은 안나온다. ^^
명령어는 다음과 같다.
```
# certbot certificates
```
인증이름, 도메인들, 인증서 남은날짜 등등의 정보를 볼 수 있다.



5. 도메인 추가 제거 변경 수정

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

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

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

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


인증서가 변경이 되면, 아파치를 재시작해 준다.
```
# systemctl restart httpd
```



* 참고
https://www.golinuxcloud.com/install-certbot-rocky-linux-9/
https://certbot.eff.org/

추천0

댓글목록

등록된 댓글이 없습니다.

Total 386건 1 페이지
  • RSS
개발 목록
번호 제목 조회 추천 날짜
386142004-07
385677002-02
384801001-09
383955012-25
382902012-15
381755012-10
380375012-03
379396011-26
378377011-04
377960009-08
3761192008-11
열람중1287008-10
3741564007-10
3731076007-03
3721474006-06
3711282004-23
3701269004-20
3692280004-19
368969004-12
3671597004-11

검색


사이트 정보

Copyright © Baragi.Net. All rights reserved.