웹사이트 검색

유효한 Lets Encrypt SSL 인증서로 ISPConfig 3 관리 메일 서버 보안


이 페이지에서

  1. 전제 조건
  2. 시작하기\n
  3. 인증서 발급
  4. 인증서를 Lets Encrypt 인증서로 교체
  5. 자동 갱신 스크립트 설정
  6. 작동하지 않습니까?\n

자체 메일 서버를 실행 중인 경우 SSL/TLS 연결로 안전하게 연결하는 것이 가장 좋습니다. 이러한 보안 연결에는 유효한 인증서가 필요합니다. 이 자습서에서는 자동으로 갱신되는 메일 서버에 대한 Lets Encrypt 인증서를 설정합니다.

경고: 이 튜토리얼은 https://linux-console.net/tutorial/securing-ispconfig-3-with-a-free-lets-encrypt-ssl-certificate/ 튜토리얼을 기반으로 하지만 별도의 인증서를 갖도록 수정되었습니다. 메일 서버 및 제어판용. 이전에 해당 튜토리얼을 따랐다면 이 튜토리얼로 인해 설정이 손상될 수 있습니다.

이 자습서에서는 acme.sh에서 발급한 인증서를 사용합니다. certbot을 사용하는 경우 대신 이 자습서를 따르십시오. -certbot.86372/

ISPConfig 3.2에 대한 참고 사항: ISPConfig 3.2는 설치 중에 메일 서버에도 사용되는 서버 호스트 이름에 대한 유효한 Lets Encrypt SSL 인증서를 자동으로 생성할 수 있습니다. SSL 인증서에서 서버 호스트 이름 외에 다른 도메인 이름이 필요하지 않은 경우 ISPConfig 3.2 시스템에서 여기에 설명된 대로 Lets Encrypt SSL 인증서를 수동으로 생성할 필요가 없습니다.

전제 조건

  • 사용 중인 OS의 Perfect Server 튜토리얼에 따라 서버를 설치해야 합니다.\n
  • 루트 사용자로 로그인했는지 확인하십시오.\n

시작하기

내 메일 서버에 대해 다음 호스트 이름을 사용합니다: mail.example.com, smtp.example.com, imap.example.com.

이 튜토리얼에서 빨간색 밑줄이 있는 모든 호스트 이름을 자신의 이름으로 바꿉니다.

서버를 가리키도록 호스트 이름에 대한 DNS 레코드를 만듭니다. 이들은 A(결국 AAAA) 레코드여야 합니다. 그런 다음 ISPConfig 인터페이스에서 사이트 탭으로 이동합니다.

인증서 발급

사이트에서 "새 웹사이트 추가"를 클릭합니다. mail.example.com을 도메인으로 설정합니다. Auto-Subdomain을 비활성화하고 Lets Encrypt 확인란을 선택합니다.

그런 다음 별칭 도메인 목록으로 이동하고 "새 별칭 도메인 추가"를 클릭하여 다른 호스트 이름을 별칭 도메인으로 추가할 수 있습니다. smtp.example.com을 도메인으로 선택하고 mail.example.com을 상위 웹사이트로 선택합니다. 자동 하위 도메인을 비활성화하고 새 레코드를 저장합니다. 최종적으로 다른 호스트 이름에 대해 이 작업을 반복합니다.

인증서가 있는지 확인합니다. https://www.sslshopper.com/ssl-checker.html과 같은 도구를 사용하여 이 작업을 수행할 수 있습니다.

다음과 같아야 합니다.

호스트 이름이 나열되고 다른 오류가 없으면 계속 진행할 수 있습니다. 그렇지 않으면 계속 진행하기 전에 오류를 확인하고 해결하십시오.

인증서를 Lets 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 /root/.acme.sh/mail.example.com/fullchain.cer smtpd.cert
ln -s /root/.acme.sh/mail.example.com/mail.example.com.key smtpd.key
systemctl restart postfix
systemctl restart dovecot

이제 Postfix 및 Dovecot 서버에 인증서를 사용해야 합니다. 하지만 아직 끝나지 않았습니다! Lets Encrypt 인증서는 60일마다 갱신되므로 향후 인증서 교체 프로세스를 자동화해야 하므로 잊을 수 없습니다.

자동 갱신 스크립트 설정

새 스크립트 파일을 엽니다.

nano /etc/init.d/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 /etc/init.d/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=/etc/init.d/le_mailserver_restart.sh

이 파일을 저장하고 닫습니다. 그런 다음 새 시스템 경로 파일을 만들고 엽니다.

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=/root/.acme.sh/mail.example.com/
Unit=le-mailserver-restart.service

[Install]
WantedBy=multi-user.target

이 파일을 저장하고 닫습니다. 그런 다음 서비스를 시작하고 시작 시 실행되도록 활성화합니다.

systemctl start le-mailserver-restart.path

시작 시 실행되도록 활성화합니다.

systemctl enable le-mailserver-restart.path

그리고 끝났다!

작동하지 않는?

Lets Encrypt가 별칭 도메인 중 하나를 기본 도메인으로 사용했기 때문에 한때 이것에 문제가 있었습니다. 앞에서 언급한 SSL 도구에서 "일반 이름"으로 기본 도메인을 찾거나 /root/acme.sh/의 내용을 나열하여 어떤 (별칭)도메인에 폴더가 있는지 확인할 수 있습니다.

여전히 문제가 발생하면 다른 사람들이 도움을 줄 수 있도록 포럼에서 스레드를 여십시오.