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

ISPConfig 3 설치를 StartSSL의 무료 Class1 SSL 인증서로 보호하기

이 튜토리얼에서는 StartSSL의 무료 Class1 SSL 인증서를 사용하여 ISPConfig 3 설치를 보호하고 자체 서명된 인증서 경고를 없애는 방법을 보여줍니다. 이 가이드는 ISPConfig 웹 인터페이스(Apache2 및 nginx 모두), Postfix(TLS 연결용), Courier 및 Dovecot(POP3 및 IMAP용), PureFTPd(TLS/FTPES 연결용)에 대한 SSL 인증서 사용을 다룹니다. monit를 설치하고 HTTPS를 웹 인터페이스에 사용하는 경우, StartSSL 인증서를 사용하는 방법도 보여드리겠습니다. 이 가이드는 Debian 또는 Ubuntu를 사용하는 것으로 가정합니다. ISPConfig 3에서 지원하는 다른 배포판에서도 원칙은 동일하지만 경로가 다를 수 있습니다.

업데이트 2017년 12월 20일

StartSSL CA는 더 이상 브라우저에서 신뢰되지 않으며 2018년 1월 1일부터 SSL 인증서 발급을 중단합니다. 오늘날 좋은 대안이 있으니, StartSSL 대신 Let’s Encrypt를 사용하여 무료 SSL 인증서를 받으세요. ISPConfig, Postfix, Dovecot, Courier, Monit 및 PureFTPD에 Let’s Encrypt SSL 인증서를 사용하는 방법에 대한 지침은 다음 링크에서 확인할 수 있습니다:

https://www.howtoforge.com/community/threads/securing-ispconfig-3-control-panel-port-8080-with-lets-encrypt-free-ssl.75554/

1 사전 참고

http://www.ispconfig.org/ispconfig-3/documentation/의 가이드 중 하나를 사용하여 시스템을 설정했다고 가정합니다. 앞서 언급했듯이, 이 가이드에서는 Debian/Ubuntu에 집중하겠지만, ISPConfig 3에서 지원하는 다른 배포판에서도 작동해야 합니다(경로를 조정해야 할 수도 있습니다).

여기서는 호스트 이름 server1.example.com을 사용할 것입니다. StartSSL은 기본 도메인과 하나의 하위 도메인에 대해 Class1 인증서를 생성할 수 있도록 허용하므로, example.com 및 server1.example.com에 대한 인증서를 생성할 것입니다. 이는 사용자가 모든 서비스(ISPConfig 웹 인터페이스, Postfix, Courier/Dovecot, PureFTPD 등)에 대해 기본 도메인 example.com 또는 하위 도메인 server1.example.com을 사용하도록 안내해야 함을 의미합니다. 그렇지 않으면 인증서 경고가 발생합니다.

서비스에 대해 다른 호스트 이름을 사용하려는 경우(예: Postfix의 경우 mail.example.com, ISPConfig의 경우 ispconfig.example.com 등), StartSSL에서 Class2 인증서를 받는 것이 좋습니다. 무료는 아니지만 여러 하위 도메인(모든 하위 도메인에 대해 *.example.com을 사용할 수 있음) 및 여러 도메인에 대해 생성할 수 있습니다. 지침은 동일하지만, StartSSL의 sub.class 1.server.ca.pem 중간 인증서를 사용할 때는 대신 sub.class 2.server.ca.pem을 사용해야 합니다. 이 튜토리얼 전반에 걸쳐 이 차이를 설명하겠습니다.

이 튜토리얼의 모든 단계를 루트 권한으로 실행하고 있으므로, 루트로 로그인했는지 확인하세요. Ubuntu를 사용하는 경우, 다음을 실행하세요…

sudo su

… 루트 권한을 얻기 위해.

2 인증서 서명 요청(CSR) 생성하기

StartSSL에서 SSL 인증서를 받기 위해 인증서 서명 요청(CSR)이 필요합니다. ISPConfig 설치 프로그램(버전 >= 3.0.4)이 이를 생성하므로, 이 CSR을 ISPConfig, Postfix 등 모든 서비스 암호화의 기초로 사용할 것입니다.

ISPConfig 버전 3.0.4부터 ISPConfig 설치 프로그램은 ISPConfig 웹 인터페이스에 대한 SSL 암호화 사용 옵션을 제공하며, 다음 질문에 ENTER 또는 y로 응답하면 CSR을 포함한 자체 서명된 인증서(4096비트)를 생성합니다:

ISPConfig 웹 인터페이스에 대한 안전한(SSL) 연결을 원하십니까?(y,n) [y]: <– ENTER

ISPConfig 설치 프로그램이 올바른 데이터로 CSR을 생성하도록 하려면, 다음 질문을 볼 때 올바른 세부정보를 입력해야 합니다:

RSA 개인 키 생성 중, 4096 비트 길이 모듈스 ……………………………………………………++ ……………………………………………………………++ e는 65537(0x10001) 인증서 요청에 포함될 정보를 입력하라는 요청을 받게 됩니다. 입력할 내용은 Distinguished Name 또는 DN이라고 합니다. 필드가 꽤 많지만 일부는 비워둘 수 있습니다. 일부 필드에는 기본값이 있습니다. ‘.’를 입력하면 필드가 비워집니다.


국가 이름(2자리 코드) [AU]: <– DE 주 또는 지방 이름(전체 이름) [Some-State]: <– Niedersachsen 지역 이름(예: 도시) []: <– Lueneburg 조직 이름(예: 회사) [Internet Widgits Pty Ltd]: <– My Company Ltd. 조직 단위 이름(예: 섹션) []: <– IT 공통 이름(예: 귀하의 이름) []: <– example.com 이메일 주소 []: <– [email protected]

다음 ‘추가‘ 속성을 입력하여 인증서 요청과 함께 전송하십시오. 도전 비밀번호 []: <– ENTER 선택적 회사 이름 []: <– ENTER RSA 키 작성 중

잘못된 데이터로 인증서를 처음 생성한 경우, 다음을 실행하여 ISPConfig를 업데이트할 수 있습니다…

ispconfig_update.sh

…, 또는 이미 최신 버전을 설치한 경우 다음 명령을 실행하세요:

cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xvfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install
php -q update.php

이렇게 하면 다음 질문에 ‘yes’로 응답하여 ISPConfig 3 웹 인터페이스에 대한 새 인증서를 생성할 수 있습니다:

새 ISPConfig SSL 인증서를 생성하시겠습니까?(yes,no) [no]: <– yes

ISPConfig 3.0.4 이전 버전을 사용하는 경우, 다음을 실행하여 최신 안정 버전으로 업그레이드해야 합니다…

ispconfig_update.sh

이렇게 하면 다음 질문에 ‘yes’로 응답하여 ISPConfig 3 웹 인터페이스에 대한 SSL 연결을 생성할 수 있습니다:

새 ISPConfig SSL 인증서를 생성하시겠습니까?(yes,no) [no]: <– yes

위에서 설명한 대로, 올바른 세부정보를 입력했는지 확인하세요.

그 후, /usr/local/ispconfig/interface/ssl/ 디렉토리에 SSL 키, CSR 및 자체 서명된 인증서가 있어야 합니다:

ls -l /usr/local/ispconfig/interface/ssl/
root@server1:~# ls -l /usr/local/ispconfig/interface/ssl/
total 16
-rwxr-x--- 1 ispconfig ispconfig 2423 Jan 16 13:29 ispserver.crt
-rwxr-x--- 1 ispconfig ispconfig 1777 Jan 16 13:29 ispserver.csr
-rwxr-x--- 1 ispconfig ispconfig 3243 Jan 16 13:29 ispserver.key
-rwxr-x--- 1 ispconfig ispconfig 3311 Jan 16 13:28 ispserver.key.secure
root@server1:~#

이 튜토리얼에서는 개인 키(ispserver.key)와 CSR(ispserver.csr)만 필요하며, ispserver.crt는 StartSSL의 Class1 인증서로 교체할 것입니다. ispserver.key.secure는 무시할 수 있습니다.

명령줄에서 ispserver.key 및 ispserver.csr을 생성하는 것도 가능합니다:

cd /usr/local/ispconfig/interface/ssl/
openssl req -new -newkey rsa:4096 -days 365 -nodes -keyout ispserver.key -out ispserver.csr

(이렇게 하면 ispserver.crt는 생성되지 않지만, StartSSL에서 서명된 인증서를 받을 것이므로 문제되지 않습니다.)

당신의 ispserver.csr은 다음과 유사해야 합니다(실제 CSR을 사용하고 있기 때문에 큰 부분을 x로 가렸습니다):

cat /usr/local/ispconfig/interface/ssl/ispserver.csr

| -----BEGIN CERTIFICATE REQUEST----- MIIC7TCCAdUCAQAwgacxCzAJBgxxxxxxAkRFMRYwFAYDVQQIDA1OaWVkZXJzYWNo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 9Z5RhXTfOz8F2wsNH5yP9eqkVlkYKpIwyUHoZtUSp+xz -----END CERTIFICATE REQUEST----- |

3 StartSSL에서 무료 Class1 인증서 받기

이제 http://www.startssl.com/로 이동하여 계정을 생성하세요. 도메인을 검증한 후(Validations Wizard 탭에서), Certificates Wizard 탭에서 인증서를 요청할 수 있습니다 - Certificate Target 드롭다운 필드에서 Web Server SSL/TLS Certificate를 선택하세요:

이미 개인 키와 CSR이 있으므로 다음 단계를 건너뛸 수 있습니다 - Skip >>를 클릭하세요:

다음 페이지에서 CSR을 입력합니다. 즉, /usr/local/ispconfig/interface/ssl/ispserver.csr 파일의 내용(—–BEGIN CERTIFICATE REQUEST—–로 시작하고 —–END CERTIFICATE REQUEST—–로 끝남)을 입력합니다:

그런 다음 마법사의 나머지 단계를 따릅니다. 인증서가 생성될 도메인과 하나의 하위 도명을 요청합니다. 모든 서비스에 server1.example.com을 사용하는 경우, example.com을 도메인으로, server1을 하위 도메인으로 입력하세요.

몇 분 후, 새 인증서가 준비되었다는 이메일을 받게 됩니다. Toolbox > Retrieve Certificate로 이동하여 인증서를 선택하세요:

StartSSL의 웹 인터페이스에서 인증서를 복사하세요…

… 그리고 원본 ispserver.crt 파일의 백업을 만들고 StartSSL Class1 인증서를 (빈) ispserver.crt 파일에 붙여넣으세요:

mv /usr/local/ispconfig/interface/ssl/ispserver.crt /usr/local/ispconfig/interface/ssl/ispserver.crt_bak
vi /usr/local/ispconfig/interface/ssl/ispserver.crt

| -----BEGIN CERTIFICATE----- MIIHMTCCBhmgAwIBAgIDxxxxxx0GCSqGSIb3DQEBBQUAMIGCMQswCQYDVQQGEwJJ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx c2x1wonVRVmKovt2OuM1ZqZw0Ynk -----END CERTIFICATE----- |

다음으로 StartSSL의 루트 CA와 Class1 중간 서버 CA를 다운로드합니다:

cd /usr/local/ispconfig/interface/ssl
wget https://www.startssl.com/certs/ca.pem
wget https://www.startssl.com/certs/sub.class1.server.ca.pem

(클래스 2 인증서를 사용하는 경우, sub.class2.server.ca.pem을 다운로드하세요.)

두 파일의 이름을 바꿉니다:

mv ca.pem startssl.ca.crt
mv sub.class1.server.ca.pem startssl.sub.class1.server.ca.crt

(클래스 2 인증서를 사용하는 경우 두 번째 명령을 조정하세요.)

일부 서비스는 .pem 파일을 요구하므로 다음과 같이 생성합니다(클래스 2 인증서를 사용하는 경우 명령을 조정해야 합니다):

cat startssl.sub.class1.server.ca.crt startssl.ca.crt > startssl.chain.class1.server.crt
cat ispserver.{key,crt} startssl.chain.class1.server.crt > ispserver.pem
chmod 600 ispserver.pem
Share: X/Twitter LinkedIn

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

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