Поиск по сайту:

Защита ISPConfig 3.1 с помощью SSL-сертификата Free Lets Encrypt


На этой странице

  1. Создание веб-сайта с использованием полного доменного имени хоста сервера ISPConfig
  2. Доступ к веб-сайту ISPConfig в Интернете
  3. Включение SSL для панели управления ISPConfig 3 (порт 8080)
  4. Проверка SSL для панели управления ISPConfig 3 (порт 8080)
  5. Защита веб-сайта ISPConfig с помощью Lets Encrypt SSL
  6. Изменение панели управления ISPConfig 3 (порт 8080)
  7. Использование того же позволяет шифровать SSL-сертификаты для других основных служб
    1. а. Для постфикса
    2. б. Для голубятни: (* Обратите внимание, что это не должно существовать вместе с курьером)
    3. с. Для курьера: (* Обратите внимание, что это не должно существовать вместе с dovecot)
    4. д. Для чистого FTPd:
    5. т.е. Для monit: (если он установлен на вашем сервере)

    ВАЖНО: Это руководство не совместимо с ISPConfig 3.2 и более поздними версиями, так как ISPConfig 3.2 и более новые версии имеют встроенную функцию Lets encrypt для всех служб. SSL-сертификат Lets encrypt настраивается автоматически во время установки, поэтому больше нет необходимости настраивать Lets encrypt для какой-либо службы вручную.

    Автор: ахрасис

    В этом руководстве показано, как создать и настроить бесплатный SSL-сертификат Lets encrypt для интерфейса ISPconfig (порт 8080), системы электронной почты (Postfix и Dovecot/Courier), FTP-сервера (pure-ftpd) и Monit. Команды в этом руководстве были протестированы в Ubuntu 16.04, они должны работать и в Debian. Для работы на CentOS могут потребоваться определенные модификации.

    Справка по этому руководству доступна в этой ветке форума.

    Создание веб-сайта с использованием полного доменного имени хоста ISPConfig Server

    Создайте сайт для своего сервера в панели ISPConfig через Сайты > Веб-сайт > Добавить новый веб-сайт. Воспоминание! Это веб-сайт вашего сервера, поэтому он должен содержать полное доменное имя вашего сервера (FQDN). В этом руководстве я буду называть его \\hostname -f\\.

    hostname -f

    Надеюсь, он будет работать без каких-либо изменений на вашем сервере.

    Доступ к веб-сайту ISPConfig в Интернете

    Проверьте, готов ли сайт вашего сервера и доступен ли он в Интернете, поскольку Lets Encrypt необходимо убедиться, что ваш сайт доступен, прежде чем выдавать ключ SSL, сертификат и файл цепочки для вашего сайта сервера. Вы также должны создать свою DNS-зону и разрешить ее правильное распространение, так как Lets Encrypt также необходимо ее проверить.

    Включение SSL для панели управления ISPConfig 3 (порт 8080)

    Если вы не включили SSL во время настройки ISPConfig, то есть для его панели управления на порту 8080, включите его, набрав ispconfig_update.sh в терминале и выберите да для SSL. Нам не нужно, чтобы это был правильный ключ, и мы не хотим его сохранять, но мы хотим работать быстрее, поэтому мы можем просто ввести его для всех его полей. Когда вы закончите это, самозаверяющий SSL уже должен быть включен для вашего ISPConfig.

    Проверка SSL для панели управления ISPConfig 3 (порт 8080)

    Проверьте свой браузер, чтобы подтвердить, открыв панель управления ISPConfig через порт 8080. Обратите внимание, что на этом этапе вы можете получить предупреждение, поскольку созданные файлы SSL являются самоподписанными, но браузер подтвердит, что ваш ISPConfig поддерживает SSL или нет.

    Защита веб-сайта ISPConfig с помощью Lets Encrypt SSL

    Если все вышеперечисленное выполнено, вернитесь на панель ISPConfig > Сайты > Веб-сайт > Имя веб-сайта, затем нажмите кнопки проверки SSL и Lets Encrypt и сохраните, чтобы создать SSL-файлы Lets Encrypt и активировать их для своего серверного сайта. . В случае успеха ваш серверный сайт теперь будет использовать файлы Lets Encrypt SSL, но не вашу страницу ISPConfig 8080. В случае неудачи вы не сможете двигаться дальше, поэтому проверьте файл журнала на наличие подсказки.

    Изменение панели управления ISPConfig 3 (порт 8080)

    Если LE SSL уже работает, перейдите к терминалу вашего сервера, выполните root через 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, вы можете проигнорировать третью строку, которая предназначена для переименования существующего файла, если он есть, в качестве резервной копии.
    • Обратите внимание, что мы используем Live-папку Lets Encrypt вместо архивной папки.
    • Также обратите внимание на последнюю строку, где ispserver.pem создается путем объединения файлов, таким образом, Lets Encrypt не будет автоматически обновлять его, в отличие от других файлов, которые мы просто символизировали, поэтому мы рассмотрим это в последней части это руководство.
    • Обратите также внимание, что вы либо вводите \\hostname -f\\, либо server1.example.com, так как результат тот же, потому что \\hostname -f\\ — это server1.example.com.

    Использование тех же SSL-сертификатов позволяет шифровать для других основных служб

    В качестве дополнительных советов, основанных на защите вашей установки ISPConfig 3, вы можете использовать символическую ссылку на ispserver.key или .crt или .pem вместо того, чтобы напрямую указывать ваш postfix, dovecot, courier, pure-FTPd и monit на файлы Lets Encrypt SSL. Для 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

    б. Для голубятни: (* Обратите внимание, что это не должно существовать вместе с курьером)

    Проверьте, существует ли этот код, используя nano /etc/dovecot/dovecot.conf.

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

    Оставьте их как есть, если они существуют. В противном случае исправьте их. В любом случае перезапуск службы dovecot уже описан выше.

    в. Для курьера: (* Обратите внимание, что это не должно существовать вместе с 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

    д. Для чистого FTPd:

    cd /etc/ssl/private/
    mv pure-ftpd.pem pure-ftpd.pem-$ (дата +\%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 перезапуск

    е. Для monit: (если он установлен на вашем сервере)

    nano /etc/monit/monitrc

    Добавьте приведенную выше символическую ссылку в ispserver.pem, который мы создали для pure-ftpd, здесь же:

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

    И перезапустите монитор:

    service monit restart

    Создайте сценарий автоматического обновления для вашего Pem-файла ISPConfig (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, поэтому они могут безопасно удалить его. Измените приведенный выше сценарий соответствующим образом.
    • Для настройки нескольких серверов обратитесь к сообщению № 203 и добавьте сюда указанный код scp, чтобы автоматизировать будущие обновления.

    Затем мы делаем его исполняемым, добавляем root в качестве разрешенного пользователя для 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, созданный для этой цели, который поддерживает как nginx, так и apache2 от ISPConfig до pure-ftpd выше, за исключением monit. Прежде чем использовать его, вы уже должны были выполнить описанные выше шаги (1–5) и иметь:

    1. Создал сайт для вашего сервера через ISPConfig;
    2. Веб-сайт доступен в режиме онлайн;
    3. ISPConfig SSL включен (через установку или обновление);
    4. LE SSL успешно включен для веб-сайта.