여기서는 인증서를 무료로 제공하는 기관 LetsEncrypt와 자동으로 발급해주는 Certbot 소프트웨어 도구를 이용하여 짐브라(Zimbra) 메일서버에 인증서를 적용하는 방법을 알아보도록 하겠습니다.
설치환경 및 준비물
마지막 릴리즈 테스트 : [2022-09-28]
Zimbra Collaboration Open Source 버전 : 8.8.15
OS : Rocky Linux 8.6
◇ 짐브라(Zimbra) 메일서버 설치「실서버 구축」 포스팅 참고
참고 문서
STEP01 → LetsEncrypt인증서 발급받기 위한 Certbot 패키지 설치
※ Rocky Linux 8.6 기본 저장소에는 배포하지 않으므로 별도 저장소를 추가해야 합니다.
[root@zmail ~]# dnf install epel-release [Epel 저장소 추가]
[root@zmail ~]# dnf install certbot [certbot 설치]
그리고 Zimbra에 세팅한 도메인을 확인 합니다.
[root@zmail ~]# su - zimbra -c "zmhostname" [zmhostname 명령어 이용]
zmail.foxydog.pe.kr
STEP02 → 인증서 발급받기 [수동 진행]
① 일시적 방화벽 중지
[root@zmail ~]# systemctl stop firewalld
Certbot 인증서 발급받을 때 기본적으로 80 포트로 통신을 합니다.
편의상 일시적으로 오픈하거나 또는 방화벽을 중지하는 게 작업하기 편합니다.
② Zimbra 서비스 중지
[root@zmail ~]# su - zimbra -c "zmcontrol stop"
③ 인증서 발급
※ 참고사항
Zimbra 솔루션은 인증서를 적용할 때 ROOT 인증서도 같이 체크를 합니다.
원래는 다음과 같이 옵션이 포함되어야 합니다. 아래는 예시입니다.
패턴 1 인증서를 새로 발급받을 경우
[root@zmail ~]# certbot certonly -d zmail.foxydog.pe.kr --preferred-chain "ISRG Root X1"
패턴 2 이미 발급받은 인증서를 강제로 갱신할 경우
[root@zmail ~]# certbot certonly -d zmail.foxydog.pe.kr --force-renewal --preferred-chain "ISRG Root X1"
[인증서 발급 시작]
How would you like to authenticate with the ACME CA?
[Enter]How would you like to authenticate with the ACME CA?
※ 상황에 따라 다르게 나올 수 있습니다. Standalone 을 선택하면 됩니다.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Spin up a temporary webserver (standalone)
2: Place files in webroot directory (webroot)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1 [Enter]
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): foxydog@foxydog.pe.kr [관리자 메일 주소 입력]
라이선스 동의 둘 다 Y [Enter] 후, 문제가 없다면 아래와 같은 메시지 출력
Account registered.
Requesting a certificate for zmail.foxydog.pe.kr
Successfully received certificate. [정상 패턴]
Certificate is saved at: /etc/letsencrypt/live/zmail.foxydog.pe.kr/fullchain.pem
Key is saved at: /etc/letsencrypt/live/zmail.foxydog.pe.kr/privkey.pem
This certificate expires on 2022-12-27.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
We were unable to subscribe you the EFF mailing list. You can try again later by visiting https://act.eff.org.
STEP03 → Zimbra 인증서 작업
① 발급받은 인증키(Privkey)를 Zimbra SSL 경로에 복사
[root@zmail ~]# cp /etc/letsencrypt/live/zmail.foxydog.pe.kr/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key
[root@zmail ~]# chown zimbra:zimbra /opt/zimbra/ssl/zimbra/commercial/commercial.key [권한 수정]
② 관리를 위해 별도 폴더 생성 및 Zimbra 권한 부여
[root@zmail ~]# mkdir /opt/zimbra/ssl/letsencrypt [폴더 생성]
[root@zmail ~]# cp /etc/letsencrypt/live/zmail.foxydog.pe.kr/* /opt/zimbra/ssl/letsencrypt/ [인증서 복사]
[root@zmail ~]# chown -R zimbra:zimbra /opt/zimbra/ssl/letsencrypt/ [Zimbra 권한 부여]
③ Letsencrypt ROOT 인증서 통합
참고 사이트 : Chain of Trust - Let's Encrypt (letsencrypt.org)
[root@zmail ~]# wget -O /tmp/ISRG-X1.pem https://letsencrypt.org/certs/isrgrootx1.pem.txt [Root 인증서 수동 다운]
[root@zmail ~]# cat /tmp/ISRG-X1.pem >> /opt/zimbra/ssl/letsencrypt/chain.pem [인증서 통합]
[root@zmail ~]# vi /opt/zimbra/ssl/letsencrypt/chain.pem [인증서 확인]
※ 체인 인증서를 열었을 때 인증서 정보가 2개가 들어가 있으면 정상, 스크린샷 예시
STEP04 → Zimbra 인증서 체크
※ Zimbra 솔루션에서 제공하는 zmcertmgr 명령어를 이용
[root@zmail ~]# su - zimbra -c "/opt/zimbra/bin/zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/commercial.key /opt/zimbra/ssl/letsencrypt/cert.pem /opt/zimbra/ssl/letsencrypt/chain.pem" [전체 한 줄]
STEP05 → Zimbra 인증서 적용
[root@zmail ~]# su - zimbra -c "/opt/zimbra/bin/zmcertmgr deploycrt comm /opt/zimbra/ssl/letsencrypt/cert.pem /opt/zimbra/ssl/letsencrypt/chain.pem" [전체 한 줄]
STEP06 → Zimbra 서비스 시작 및 웹 HTTPS 접속 확인
[root@zmail ~]# systemctl start firewalld [방화벽 시작]
[root@zmail ~]# su - zimbra -c "zmcontrol start" [짐브라 시작]
[root@zmail ~]# curl -v https://localhost [서버에서 확인 방법, Localhost에 본인 도메인 입력]
※ 브라우저에서 확인, 크롬(Chrome) 예시
모든 브라우저 대부분 비슷한 위치에 있으며 보는 방법도 크게 다르지 않습니다.
※ 클라이언트 아웃룩 프로그램 SSL/TLS 연결 테스트
마치며
명령어 zmcertmgr만 입력을 하시면 사용(옵션) 예시가 나옵니다. 해당 명령어를 통해 인증서를 적용해야 하기 때문에 명령어에 대해서 기본적인 방법을 숙지할 필요가 있습니다.
순서 정리 |
① Zimbra 서비스 중지 # su - zimbra -c "zmcontrol stop" |
② 인증서 발급, 여기서는 Let's Encrypt 무료 인증서로 적용하였지만 인증서 업체에서 구입(발급)하여 적용 할 수 도 있습니다. |
③ 인증키 Zimbra 경로로 복사 # cp /인증키경로/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key |
④ 인증키(인증서) Zimbra 권한 부여 # chown zimbra:zimbra /opt/zimbra/ssl/zimbra/commercial/commercial.key |
⑤ 인증서 체크 # su - zimbra -c "/opt/zimbra/bin/zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/commercial.key /인증서경로/cert.pem /체인인증서경로/chain.pem |
⑥ 인증서 적용 # su - zimbra -c "/opt/zimbra/bin/zmcertmgr deploycrt comm /인증서경로/cert.pem /체인인증서경로/chain.pem |
⑦ Zimbra 서비스 시작 # su - zimbra -c "zmcontrol start" |
참고하시기 바랍니다.
'◈『Open(Source) Solution』 > 메일서버(Zimbra)' 카테고리의 다른 글
Rocky Linux - 짐브라(Zimbra) 메일서버 설치「실서버 구축」 (7) | 2022.09.26 |
---|---|
Rocky Linux - 짐브라(Zimbra) 메일서버 설치「로컬 테스트」 (2) | 2022.09.22 |