Как настроить LetsEncrypt SSL для нескольких веб-сайтов, размещенных на CentOS 7?

У меня есть сервер CentOS 7 с Apache. В настоящее время существует несколько веб-сайтов, размещенных на виртуальном сервере как «сервер верхнего уровня» и «вспомогательный сервер» с использованием VirtualMin, т. Е. Несколько виртуальных серверов на веб-сервере Apache.

  • Сервер верхнего уровня - www.example1.com (wordpress)
  • Субсервер - www.example2.com (wordpress)
  • Субсервер - www.example3.com (opencart)
  • и так далее ..

Виртуальные серверы Apache:

  • Сервер по умолчанию - / var / www / html
  • Виртуальный сервер - example1.com - / home / example1 / public_html
  • Виртуальный сервер - example2.com - /home/example1/domains/example2.com/public_html
  • Виртуальный сервер - example3.com - /home/example1/domains/example3.com/public_html

Я хочу установить LetsEncrypt SSL для всех веб-сайтов. Должен ли я устанавливать 1 сертификат SSL для всех доменов или по 1 для каждого домена?

Как мне продолжить? Любая помощь будет принята с благодарностью.

2
задан 15 July 2018 в 15:27
2 ответа

У вас есть два варианта:

  • для получения несколько сертификатов с помощью нескольких отдельных вызовов certbot ;

  • для получения одного сертификата с несколькими альтернативными именами SAN - субъектов с помощью одного вызова certbot (с несколькими - d параметры указаны).

Если веб-сайты полностью отключены, я бы использовал вариант №1. Если они сильно связаны, я бы использовал вариант №2.

2
ответ дан 3 December 2019 в 11:25

Я использую системы Debian и Ubuntu, и мне нравится их менталитет «доступность сайтов против отдельной конфигурации с включенными сайтами для каждого сайта».

Итак ...

Я иметь файл httpd conf для каждого виртуального хоста.

<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com
  RewriteEngine on
  RewriteRule ^/(.*)$ https://www.example.com/$1 [R,L]
</VirtualHost>
<VirtualHost 10.0.2.15:443>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin webmaster@example.com
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
    CustomLog ${APACHE_LOG_DIR}/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    DocumentRoot /var/www-example.com
    <directory /var/www-example.com>
        Options All
                AllowOverride All
                Require all granted
    </directory>
    ErrorLog ${APACHE_LOG_DIR}/ssl-example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/ssl-example.com-access.log combined
</VirtualHost>

Не забудьте создать свои каталоги для DocumentRoot .

Затем остановите веб-сервер apache, убедитесь, что ваш брандмауэр принимает подключения к порту 443 и вызовите certbot или letsencrypt . Я не доверяю ему изменять мою конфигурацию apache, поэтому я использую опцию certonly . Сделайте один проход для каждого домена -

letsencrypt certonly -d example.com -d www.example.com

Затем свяжите конфигурации apache с сайтами с поддержкой или используйте a2ensite , или, как бы вы ни управляли активными конфигурациями, протестируйте конфигурацию apache с помощью apache2ctl -t , и если все отчеты в порядке, перезапустите apache.

0
ответ дан 3 December 2019 в 11:25

Теги

Похожие вопросы