SSL 인증서 · 5 min read · Sep 24, 2025

ISPConfig 3.1을 무료 Let's Encrypt SSL 인증서로 보호하기

중요: 이 가이드는 ISPConfig 3.2 및 이후 버전과 호환되지 않습니다. ISPConfig 3.2 및 이후 버전에서는 모든 서비스에 대해 Let’s Encrypt가 내장되어 있습니다. Let’s Encrypt SSL 인증서는 설치 중에 자동으로 구성되므로 더 이상 수동으로 서비스를 위해 Let’s Encrypt를 구성할 필요가 없습니다.

저자: ahrasis

이 튜토리얼은 ISPconfig 인터페이스(포트 8080), 이메일 시스템(Postfix 및 Dovecot/Courier), FTP 서버(pure-ftpd) 및 Monit을 위한 무료 Let’s Encrypt SSL 인증서를 생성하고 구성하는 방법을 보여줍니다. 이 튜토리얼의 명령은 Ubuntu 16.04에서 테스트되었으며, Debian에서도 작동해야 합니다. CentOS에서 작동하게 하려면 특정 수정이 필요할 수 있습니다.

이 가이에 대한 도움은 이 포럼 스레드에서 확인할 수 있습니다.

ISPConfig 서버 호스트 이름 FQDN을 사용하여 웹사이트 만들기

ISPConfig 패널에서 사이트 > 웹사이트 > 새 웹사이트 추가를 통해 서버에 대한 사이트를 만듭니다. 기억하세요! 이것은 귀하의 서버 웹사이트이며, 따라서 귀하의 서버 완전한 도메인 이름(FQDN)을 포함해야 합니다. 이 가이드에서는 이를 hostname -f로 언급하겠습니다.

hostname -f

희망적으로, 서버에 대한 변경 없이 작동할 것입니다.

ISPConfig 웹사이트 온라인 액세스

Let’s Encrypt가 SSL 키, 인증서 및 체인 파일을 발급하기 전에 귀하의 웹사이트에 액세스할 수 있는지 확인해야 하므로 서버 사이트가 준비되고 온라인에서 액세스 가능한지 확인하십시오. 또한 DNS 영역을 생성하고 적절하게 전파되도록 허용해야 합니다. Let’s Encrypt가 이를 확인해야 합니다.

ISPConfig 3 제어판(포트 8080)에 대한 SSL 활성화

ISPConfig 설정 중에 SSL을 활성화하지 않았다면 즉, 포트 8080의 제어판에 대해, 터미널에서 ispconfig_update.sh를 입력하고 SSL에 대해 예를 선택하여 활성화하십시오. 우리는 이것이 적절한 키일 필요는 없으며, 유지하고 싶지도 않지만 더 빠르게 작업하고 싶으므로 모든 필드에 대해 단순히 입력할 수 있습니다. 이를 완료하면 ISPConfig에 대해 자체 서명된 SSL이 이미 활성화되어 있어야 합니다.

ISPConfig 3 제어판(포트 8080)에 대한 SSL 확인

브라우저를 확인하여 포트 8080에서 ISPConfig 제어판을 열어 확인하십시오. 이 단계에서 생성된 SSL 파일이 자체 서명된 것이므로 경고가 표시될 수 있지만 브라우저는 귀하의 ISPConfig에 SSL이 활성화되었는지 여부를 확인할 것입니다.

Let’s Encrypt SSL로 ISPConfig 웹사이트 보호

위의 작업이 완료되면 ISPConfig 패널 > 사이트 > 웹사이트 > 웹사이트 이름으로 돌아가서 SSLLet’s Encrypt 확인 버튼을 클릭하고 저장하여 Let’s Encrypt SSL 파일을 생성하고 이를 서버 사이트에 대해 활성화합니다. 성공하면 귀하의 서버 사이트는 이제 이 Let’s Encrypt SSL 파일을 사용하게 되지만 ISPConfig 8080 페이지는 사용하지 않습니다. 실패하면 더 이상 진행할 수 없으므로 단서를 위해 로그 파일을 확인하십시오.

ISPConfig 3 제어판(포트 8080) 변경

LE SSL이 이미 작동 중이라면 서버 터미널로 이동하여 sudo su를 통해 루트로 전환하고 다음 명령을 사용하여 생성된 자체 서명된 SSL 파일을 Let’s Encrypt SSL 파일로 백업하고 교체하십시오.

cd /usr/local/ispconfig/interface/ssl/  
mv ispserver.crt ispserver.crt-$(date +"%y%m%d%H%M%S").bak  
mv ispserver.key ispserver.key-$(date +"%y%m%d%H%M%S").bak  
mv ispserver.pem ispserver.pem-$(date +"%y%m%d%H%M%S").bak  
ln -s /etc/letsencrypt/live/$(hostname -f)/fullchain.pem ispserver.crt  
ln -s /etc/letsencrypt/live/$(hostname -f)/privkey.pem ispserver.key  
cat ispserver.{key,crt} > ispserver.pem  
chmod 600 ispserver.pem
  • 이전에 ispserver.pem을 생성하지 않았다면, 백업을 위해 기존 파일의 이름을 바꾸는 것을 목표로 하는 세 번째 줄은 무시할 수 있습니다.
  • Let’s Encrypt 라이브 폴더를 아카이브 폴더 대신 사용하고 있습니다.
  • 또한 ispserver.pem이 파일을 결합하여 생성되므로, 이는 단순히 심볼릭 링크된 다른 파일들과 달리 Let’s Encrypt에 의해 자동으로 갱신되지 않습니다. 따라서 이 가이드의 마지막 부분에서 이를 처리할 것입니다.
  • 또한 hostname -f 또는 server1.example.com을 입력하면 결과는 동일하므로 둘 중 하나를 입력할 수 있습니다.

다른 주요 서비스에 대해 동일한 Let’s Encrypt SSL 인증서 사용

추가 팁으로, ISPConfig 3 설치를 보호하는 데 기반하여 postfix, dovecot, courier, pure-FTPd 및 monit를 Let’s Encrypt SSL 파일에 직접 지정하는 대신 ispserver.key 또는 .crt 또는 .pem에 대한 심볼릭 링크를 사용할 수 있습니다. dovecot의 경우, 이미 postfix SSL 파일을 사용하고 있다면 무시해도 안전합니다. 자세히 설명하면 다음과 같은 작업만 수행하면 됩니다:

a. Postfix의 경우

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 /usr/local/ispconfig/interface/ssl/ispserver.crt smtpd.cert  
ln -s /usr/local/ispconfig/interface/ssl/ispserver.key smtpd.key  
service postfix restart  
service dovecot restart

b. dovecot의 경우: (* courier와 함께 존재하지 않아야 함)

nano /etc/dovecot/dovecot.conf를 사용하여 이 코드가 존재하는지 확인하십시오.

[...]  
ssl_cert = 

존재한다면 그대로 두십시오. 그렇지 않으면 수정하십시오. 어떤 경우든, service dovecot restart는 이미 위에서 다루었습니다.

c. courier의 경우: (* dovecot과 함께 존재하지 않아야 함)

cd /etc/courier/  
mv imapd.pem imapd.pem-$(date +"%y%m%d%H%M%S").bak  
mv pop3d.pem pop3d.pem-$(date +"%y%m%d%H%M%S").bak  
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem imapd.pem  
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem pop3d.pem  
service courier-imap-ssl stop  
service courier-imap-ssl start  
service courier-pop-ssl stop  
service courier-pop-ssl start

d. pure-FTPd의 경우:

cd /etc/ssl/private/  
mv pure-ftpd.pem pure-ftpd.pem-$(date +"%y%m%d%H%M%S").bak  
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem pure-ftpd.pem  
chmod 600 pure-ftpd.pem  
service pure-ftpd-mysql restart

e. monit의 경우: (서버에 설치되어 있는 경우)

nano /etc/monit/monitrc

위에서 생성한 pure-ftpd에 대한 ispserver.pem에 대한 심볼릭 링크를 여기에도 추가하십시오:

[...]  
set httpd port 2812 and  
SSL ENABLE  
PEMFILE /etc/ssl/private/pure-ftpd.pem  
allow admin:'secretpassword'  
[...]

그리고 monit를 재시작하십시오:

service monit restart

ISPConfig pem 파일(ispserver.pem)을 위한 자동 갱신 스크립트 생성

마지막 단계로, 지금까지 어떤 가이드에서도 찾지 못한 것은 ispserver.pem의 자동 업데이트입니다. 현재, Let’s Encrypt가 서버 SSL 파일을 자동으로 갱신한 직후 수동으로 변경해야 합니다. 이를 간과하지 않기 위해, 해당 incron 튜토리얼에서 제안된 대로 incron을 설치하고 ispserver.pem 파일을 자동으로 업데이트하는 스크립트를 생성할 수 있습니다. 다음과 같이 진행하십시오:

터미널 명령을 통해 incron을 설치한 후, 스크립트 파일을 생성하고 nano를 사용하여 편집하십시오:

apt install -y incron  
nano /etc/init.d/le_ispc_pem.sh

le_ispc_pem.sh에 다음을 추가하십시오:

#!/bin/sh  
### BEGIN INIT INFO  
# Provides: LE ISPSERVER.PEM 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 ISPSERVER.PEM AUTO UPDATER  
# Description: Update ispserver.pem automatically after ISPC LE SSL certs are renewed.  
### END INIT INFO  
cd /usr/local/ispconfig/interface/ssl/  
mv ispserver.pem ispserver.pem-$(date +"%y%m%d%H%M%S").bak  
cat ispserver.{key,crt} > ispserver.pem  
chmod 600 ispserver.pem  
chmod 600 /etc/ssl/private/pure-ftpd.pem  
service pure-ftpd-mysql restart  
service monit restart  
service postfix restart  
service dovecot restart  
service nginx restart
  • 일부 사용자는 monit을 설치하지 않으므로 안전하게 제거할 수 있습니다. 위 스크립트를 적절히 조정하십시오.
  • 다중 서버 설정의 경우, 게시물 #203을 참조하고 여기에서 제공된 scp 코드를 추가하여 향후 업데이트를 자동화하십시오.

그런 다음 실행 가능하게 만들고, incrontab에 대해 허용된 사용자로 root를 추가한 후 incrontab 파일을 편집하십시오:

chmod +x /etc/init.d/le_ispc_pem.sh  
echo "root" >> /etc/incron.allow  
incrontab -e

incrontab에 다음 줄을 추가하십시오:

/etc/letsencrypt/archive/$(hostname -f)/ IN_MODIFY ./etc/init.d/le_ispc_pem.sh

서비스 재시작

Let’s Encrypt로 서버를 보호하는 것에 대해 이 정도면 충분할 것 같습니다. 이후 웹 서버를 재시작할 수 있습니다.

service nginx restart

기억하세요: apache를 사용하는 경우 nginx를 apache2로 변경하십시오.

LE4ISPC

대안으로, 이 목적을 위해 만들어진 LE4ISPC 스크립트를 사용할 수 있으며, 이는 ISPConfig에서 pure-ftpd까지 nginx와 apache2를 모두 지원합니다. 사용하기 전에 위의 단계(1-5)를 완료하고 다음을 수행해야 합니다:

  1. ISPConfig를 통해 서버에 대한 웹사이트를 생성했습니다;
  2. 웹사이트가 온라인에서 액세스 가능합니다;
  3. ISPConfig SSL이 활성화되었습니다(설치 또는 업데이트를 통해);
  4. 웹사이트에 대해 LE SSL이 성공적으로 활성화되었습니다.
Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.