Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

Я использую системы 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 с sites-enabled или используйте a2ensite или, однако, вы управляете активными конфигурациями, проверьте конфигурацию apache с помощью apache2ctl -t и если все отчеты в порядке, перезапустите apache.