웹사이트 검색

무료 Lets Encrypt SSL 인증서로 ISPConfig 3.1 보안


이 페이지에서

  1. ISPConfig 서버 호스트 이름 FQDN을 사용하여 웹사이트 만들기\n
  2. ISPConfig 웹사이트 온라인 액세스
  3. ISPConfig 3 제어판(포트 8080)에 대해 SSL 활성화\n
  4. ISPConfig 3 제어판의 SSL 확인(포트 8080)\n
  5. Lets Encrypt SSL로 ISPConfig 웹사이트 보안
  6. ISPConfig 3 제어판 변경(포트 8080)
  7. 같은 것을 사용하면 다른 주요 서비스에 대한 SSL 인증서를 암호화할 수 있습니다.\n
      <라이>아. 접미사의 경우
    1. 나. Dovecot의 경우: (* 택배와 함께 있으면 안 됨)\n
    2. 다. 택배의 경우: (* 비둘기장과 함께 있으면 안 됩니다.)\n
    3. 라. 순수 FTPd의 경우:
    4. e. 모니터용: (서버에 설치되어 있는 경우)

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

    작성자: 아라시스

    이 자습서에서는 ISPconfig 인터페이스(포트 8080), 이메일 시스템(Postfix 및 Dovecot/Courier), FTP 서버(pure-ftpd) 및 Monit에 대한 무료 Lets encrypt SSL 인증서를 만들고 구성하는 방법을 보여줍니다. 이 가이드의 명령어는 Ubuntu 16.04에서 테스트되었으며 Debian에서도 작동합니다. CentOS에서 작동하려면 특정 수정이 필요할 수 있습니다.

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

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

    사이트 > 웹사이트 > 새 웹사이트 추가를 통해 ISPConfig 패널에서 서버용 사이트를 만듭니다. 기억하다! 이것은 귀하의 서버 웹 사이트이므로 귀하의 서버 FQDN(정규화된 도메인 이름)을 포함해야 합니다. 이 안내서에서는 이를 "hostname -f"라고 합니다.

    hostname -f

    서버를 변경하지 않고도 작동하기를 바랍니다.

    ISPConfig 웹사이트 온라인 액세스

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

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

    ISPConfig 설정 중에 SSL을 활성화하지 않은 경우, 즉 포트 8080의 제어판에 대해 SSL을 활성화하지 않은 경우 터미널에 ispconfig_update.sh를 입력하고 SSL에 대해 yes를 선택합니다. 우리는 이것이 적절한 키가 될 필요도 없고 유지하고 싶지도 않지만 더 빨리 작업하기를 원하므로 모든 필드에 간단히 입력할 수 있습니다. 이 작업을 마치면 ISPConfig에 대해 자체 서명된 SSL이 이미 활성화되어 있어야 합니다.

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

    포트 8080에서 ISPConfig 제어판을 열어 확인하려면 브라우저를 확인하십시오. 생성된 SSL 파일이 자체 서명되기 때문에 이 단계에서 약간의 경고가 표시될 수 있지만 브라우저는 ISPConfig에 SSL이 활성화되었는지 여부를 확인합니다.

    Lets Encrypt SSL로 ISPConfig 웹 사이트 보안

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

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

    LE SSL이 이미 작동 중이면 서버 터미널로 이동하여 sudo su를 통해 루트로 이동하고 다음 명령을 사용하여 생성된 자체 서명 SSL 파일을 백업하고 Lets 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을 생성하지 않은 경우 백업으로 기존 항목의 이름을 바꾸는 데 목적이 있는 세 번째 줄을 무시해도 됩니다.\n
    • 아카이브 폴더 대신 Lets Encrypt 라이브 폴더를 사용하고 있습니다.\n
    • 또한 ispserver.pem이 파일을 결합하여 생성되는 마지막 줄에 유의하십시오. 따라서 우리가 단순히 심볼릭 링크한 다른 파일과 달리 Lets Encrypt에 의해 자동으로 갱신되지 않으므로 마지막 부분에서 다루겠습니다. 이 가이드.
    • 또한 "hostname -f"가 server1.example.com이므로 결과가 동일하므로 "hostname -f" 또는 server1.example.com을 입력하십시오.\n

    동일하게 사용하면 다른 주요 서비스에 대해 SSL 인증서를 암호화할 수 있습니다.

    추가 팁으로 ISPConfig 3 설치 보안에 따라 postfix, dovecot, courier, pure-FTPd 및 monit을 Lets Encrypt SSL 파일로 직접 지정하는 대신 ispserver.key 또는 .crt 또는 .pem에 대한 symlink를 사용할 수 있습니다. dovecot의 경우 이미 postfix SSL 파일을 사용하고 있다면 무시해도 됩니다. 세부적으로는 다음 작업만 수행하면 됩니다.

    ㅏ. 접미사의 경우

    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

    비. Dovecot의 경우: (* 택배와 함께 있으면 안 됨)

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

    [...]
    ssl_cert = </etc/postfix/smtpd.cert
    ssl_key = </etc/postfix/smtpd.key
    [...]

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

    씨. 택배의 경우: (* 비둘기장과 함께 있으면 안 됩니다.)

    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

    디. 순수 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
    서비스 pure-ftpd-mysql 재시작

    이자형. 모니터용: (서버에 설치되어 있는 경우)

    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'
    [...]

    그리고 모니터를 다시 시작합니다.

    service monit restart

    ISPConfig Pem 파일(ispserver.pem)에 대한 자동 갱신 스크립트 생성

    지금까지 어떤 가이드에서도 찾지 못한 이 마지막 단계에는 앞서 암시한 대로 ispserver.pem의 자동 업데이트가 있습니다. 현재는 Lets 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를 설치하지 않으므로 안전하게 제거할 수 있습니다. 그에 따라 위의 스크립트를 조정하십시오.\n
    • 다중 서버 설정의 경우 게시물 #203을 참조하고 여기에 주어진 scp 코드를 추가하여 향후 업데이트를 자동화하십시오.\n

    그런 다음 실행 가능하게 만들고 incrontab에 대해 허용된 사용자로 루트를 추가한 다음 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

    서비스 다시 시작

    Lets Encrypt를 사용하여 서버를 보호하기 위한 내용이라고 생각합니다. 나중에 웹 서버를 다시 시작하는 것이 좋습니다.

    service nginx restart

    기억하세요: apache를 사용하는 경우 그에 따라 nginx를 apache2로 변경하세요.

    LE4ISPC

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

    1. ISPConfig를 통해 서버용 웹사이트를 생성합니다.
    2. 온라인으로 액세스할 수 있는 웹사이트
    3. ISPConfig SSL 활성화(설치 또는 업데이트를 통해)
    4. LE SSL이 웹사이트에 성공적으로 활성화되었습니다.