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