SSL 인증서 · 3 min read · Sep 08, 2025
ISPConfig 3 관리 메일 서버를 유효한 Let's Encrypt SSL 인증서로 보호하기

자신의 메일 서버를 운영하고 있다면, SSL/TLS 연결을 통해 안전하게 연결하는 것이 모범 사례입니다. 이러한 안전한 연결을 위해 유효한 인증서가 필요합니다. 이 튜토리얼에서는 자동으로 갱신되는 메일 서버용 Let’s Encrypt 인증서를 설정할 것입니다.
경고: 이 튜토리얼은 https://www.howtoforge.com/tutorial/securing-ispconfig-3-with-a-free-lets-encrypt-ssl-certificate/를 기반으로 하지만, 메일 서버와 제어판에 대해 별도의 인증서를 갖도록 수정되었습니다. 이전에 해당 튜토리얼을 따랐다면, 이 튜토리얼이 설정을 망칠 수 있습니다.
이 튜토리얼은 acme.sh에서 발급한 인증서를 사용합니다. certbot을 사용하는 경우 대신 이 튜토리얼을 따르세요: https://www.howtoforge.com/community/threads/securing-your-ispconfig-3-managed-mailserver-with-a-valid-lets-encrypt-ssl-certificate-certbot.86372/
ISPConfig 3.2에 대한 주의: ISPConfig 3.2는 설치 중에 서버 호스트 이름에 대해 유효한 Let’s Encrypt SSL 인증서를 자동으로 생성할 수 있으며, 이는 메일 서버에도 사용됩니다. 서버 호스트 이름 외에 SSL 인증서에 다른 도메인 이름이 필요하지 않는 한, ISPConfig 3.2 시스템에서 여기 설명된 대로 Let’s Encrypt SSL 인증서를 수동으로 생성할 필요가 없습니다.
전제 조건
- 서버는 운영 체제에 대한 완벽한 서버 튜토리얼에 따라 설치되어야 합니다.
- 루트 사용자로 로그인되어 있는지 확인하십시오.
시작하기
저는 메일 서버에 대해 다음 호스트 이름을 사용할 것입니다: mail.example.com, smtp.example.com, imap.example.com.
이 튜토리얼의 모든 빨간색 밑줄이 그어진 호스트 이름을 자신의 것으로 교체하십시오.
호스트 이름에 대한 DNS 레코드를 생성하여 서버를 가리키도록 설정합니다. 이들은 A (그리고 최종적으로 AAAA) 레코드여야 합니다. 그런 다음 ISPConfig 인터페이스에서 사이트 탭으로 이동합니다.
인증서 발급
사이트에서 “새 웹사이트 추가“를 클릭합니다. mail.example.com을 도메인으로 설정합니다. 자동 하위 도메인을 비활성화하고 Let’s Encrypt 체크박스를 선택합니다.
이후 다른 호스트 이름을 별칭 도메인으로 추가할 수 있습니다. 별칭 도메인 목록으로 이동하여 “새 별칭 도메인 추가“를 클릭합니다. smtp.example.com을 도메인으로 선택하고 mail.example.com을 기본 웹사이트로 선택합니다. 자동 하위 도메인을 비활성화하고 새 레코드를 저장합니다. 다른 호스트 이름에 대해서도 이 작업을 반복합니다.
인증서가 제대로 설정되었는지 확인하십시오. https://www.sslshopper.com/ssl-checker.html과 같은 도구를 사용하여 확인할 수 있습니다.
다음과 비슷하게 보여야 합니다:

호스트 이름이 나열되고 다른 오류가 없다면 진행할 수 있습니다. 그렇지 않으면 오류를 확인하고 해결한 후 진행하십시오.
Let’s Encrypt 인증서로 인증서 교체
이제 현재 인증서를 신뢰할 수 있는 인증서로 교체할 수 있습니다. 서버에 로그인하고 다음 명령을 실행합니다:
(웹사이트에 사용한 호스트 이름으로 mail.example.com을 교체하십시오)
cd /etc/postfix/
mv smtpd.cert smtpd.cert-$(date +"%y%m%d%H%M%S").bak
mv smtpd.key smtpd.key-$(date +"%y%m%d%H%M%S").bak
ln -s /var/www/mail.example.com/ssl/mail.example.com-le.crt smtpd.cert
ln -s /var/www/mail.example.com/ssl/mail.example.com-le.key smtpd.key
systemctl restart postfix
systemctl restart dovecot이제 인증서는 Postfix 및 Dovecot 서버에 사용되어야 합니다. 하지만 아직 끝나지 않았습니다! Let’s Encrypt 인증서는 60일마다 갱신되므로, 향후 인증서를 교체하는 프로세스를 자동화해야 잊지 않을 수 있습니다.
ISPConfig GUI가 없는 다중 서버 노드
이것이 ISPConfig 다중 서버 설정의 GUI가 없는 노드인 경우, ISPConfig 자체에 SSL 인증서가 있는지 확인해야 합니다. 단일 서버 설정이나 ISPConfig GUI가 실행되는 서버에서는 이 단계를 수행하지 마십시오.
다음 ls 명령으로 테스트할 수 있습니다:
cd /usr/local/ispconfig/interface/ssl/
ls ispserver.crt
ls ispserver.key이미 인증서가 있는 경우 결과는 다음과 비슷하게 나타납니다:
root@server:/usr/local/ispconfig/interface/ssl# ls ispserver.crt
ispserver.crt
root@server:/usr/local/ispconfig/interface/ssl# ls ispserver.key
ispserver.key두 개의 ls 명령이 ispserver.crt 및 ispserver.key 파일을 반환하지 않으면, 다음과 같이 Let’s Encrypt 인증서에 대한 심볼릭 링크를 생성하십시오:
ln -s /var/www/mail.example.com/ssl/mail.example.com-le.cer ispserver.crt
ln -s /var/www/mail.example.com/ssl/mail.example.com-le.key ispserver.key자동 갱신 스크립트 설정
새 스크립트 파일을 엽니다:
nano /usr/local/bin/le_mailserver_restart.sh이 내용을 파일에 붙여넣습니다:
#!/bin/sh
### BEGIN INIT INFO
# Provides: LE MAILSERVER CERT AUTO UPDATER
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: LE MAILSERVER CERT AUTO UPDATER
# Description: Restart mail server automatically when a new Let's Encrypt certificate is issued.
### END INIT INFO
systemctl restart postfix
systemctl restart dovecot스크립트를 실행 가능하게 만듭니다:
chmod +x /usr/local/bin/le_mailserver_restart.sh이 스크립트를 갱신 시 자동으로 트리거하기 위해 systemd를 사용할 것입니다.
새 systemd 서비스를 생성하고 엽니다:
nano /etc/systemd/system/le-mailserver-restart.service이 내용을 파일에 붙여넣습니다:
[Unit]
Description="Run script to restart Postfix and Dovecot after the certificate has been renewed"
[Service]
ExecStart=/usr/local/bin/le_mailserver_restart.sh이 파일을 저장하고 닫습니다. 그런 다음 새 systemd 경로 파일을 생성하고 엽니다:
nano /etc/systemd/system/le-mailserver-restart.path이 내용을 파일에 붙여넣고 사용한 호스트 이름으로 mail.example.com을 교체합니다:
[Unit]
Description="Monitor the mailserver certificate files to trigger a e-mail services restart after the certificates has been renewed"
[Path]
PathModified=/var/www/mail.example.com/ssl/
Unit=le-mailserver-restart.service
[Install]
WantedBy=multi-user.target이 파일을 저장하고 닫습니다. 그런 다음 서비스를 시작하고 시작 시 실행되도록 활성화합니다:
systemctl start le-mailserver-restart.path그리고 시작 시 실행되도록 활성화합니다:
systemctl enable le-mailserver-restart.path이제 완료되었습니다!
작동하지 않나요?
이와 관련하여 문제가 있었던 적이 있습니다. Let’s Encrypt가 별칭 도메인 중 하나를 기본 도메인으로 사용했기 때문입니다. 앞서 언급한 SSL 도구에서 “Common name”으로 기본 도메인을 찾거나 /root/acme.sh/의 내용을 나열하여 (별칭) 도메인 중 어떤 것이 그곳에 폴더가 있는지 확인할 수 있습니다.
여전히 문제가 발생하면 포럼에 스레드를 열어 다른 사람들이 도와줄 수 있도록 하십시오.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.