Настройка нескольких доменов с помощью Certbot и Nginx: подробное руководство

В сегодняшней цифровой среде защита вашего сайта с помощью SSL-сертификатов стала необходимостью. Если у вас на сервере несколько доменов и вы хотите настроить их с помощью Certbot и Nginx, вы попали по адресу. В этой статье мы рассмотрим несколько способов добиться этого, а также приведем примеры кода и пошаговые инструкции.

Метод 1: отдельные серверные блоки
Один простой подход — создать отдельные серверные блоки в файле конфигурации Nginx для каждого домена. Давайте рассмотрим пример:

server {
    listen 80;
    server_name domain1.com;
    return 301 https://$host$request_uri;
}
server {
    listen 443 ssl;
    server_name domain1.com;
    ssl_certificate /etc/letsencrypt/live/domain1.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain1.com/privkey.pem;
    # Additional SSL configuration
    # ...
}
server {
    listen 80;
    server_name domain2.com;
    return 301 https://$host$request_uri;
}
server {
    listen 443 ssl;
    server_name domain2.com;
    ssl_certificate /etc/letsencrypt/live/domain2.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain2.com/privkey.pem;
    # Additional SSL configuration
    # ...
}

Метод 2: использование подстановочных сертификатов
Если у вас большое количество поддоменов в каждом домене, управление отдельными сертификатами может стать затруднительным. В таких случаях сертификаты с подстановочными знаками могут изменить правила игры. Вот пример:

server {
    listen 80;
    server_name *.domain1.com;
    return 301 https://$host$request_uri;
}
server {
    listen 443 ssl;
    server_name *.domain1.com;
    ssl_certificate /etc/letsencrypt/live/domain1.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain1.com/privkey.pem;
    # Additional SSL configuration
    # ...
}
server {
    listen 80;
    server_name *.domain2.com;
    return 301 https://$host$request_uri;
}
server {
    listen 443 ssl;
    server_name *.domain2.com;
    ssl_certificate /etc/letsencrypt/live/domain2.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain2.com/privkey.pem;
    # Additional SSL configuration
    # ...
}

Метод 3: использование альтернативных имен субъектов (SAN)
Если у вас несколько доменов, но вы хотите использовать один сертификат, на помощь приходят SAN. Вот как это можно настроить:

server {
    listen 80;
    server_name domain1.com www.domain1.com domain2.com www.domain2.com;
    return 301 https://$host$request_uri;
}
server {
    listen 443 ssl;
    server_name domain1.com www.domain1.com domain2.com www.domain2.com;
    ssl_certificate /etc/letsencrypt/live/domain1.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain1.com/privkey.pem;
    # Additional SSL configuration
    # ...
}

В этой статье мы рассмотрели три метода настройки нескольких доменов с помощью Certbot и Nginx. Независимо от того, выбираете ли вы отдельные блоки серверов, групповые сертификаты или сети SAN, цель остается той же: защитить свои домены с помощью SSL. В зависимости от ваших требований и количества управляемых вами доменов вы можете выбрать наиболее подходящий для вас метод.

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