Перенос поддомена с одного сервера на другой с сохранением сертификатов Let's Encrypt — задача, которая требует внимательной настройки. Вот пошаговое руководство, как это сделать:
### 1. Подготовка нового сервера
1. **Установите Nginx и Certbot:**
На новом сервере установите Nginx и Certbot, если они еще не установлены. Убедитесь, что вы используете ту же версию Certbot и Nginx для минимизации проблем совместимости.
```bash
sudo apt update
sudo apt install nginx certbot python3-certbot-nginx
```
2. **Настройте DNS:**
Настройте DNS-записи для поддомена (A.mysite.com) так, чтобы они указывали на новый сервер. Это может занять некоторое время из-за кэширования DNS.
### 2. Перенос конфигурации Nginx
1. **Скопируйте конфигурацию Nginx:**
На старом сервере найдите конфигурационный файл для поддомена в `/etc/nginx/sites-available/` или `/etc/nginx/conf.d/`. Скопируйте его на новый сервер.
```bash
scp /etc/nginx/sites-available/A.mysite.com user@new_server_ip:/etc/nginx/sites-available/
```
2. **Создайте символическую ссылку:**
Если вы скопировали файл в `sites-available`, создайте символическую ссылку в `sites-enabled` на новом сервере.
```bash
sudo ln -s /etc/nginx/sites-available/A.mysite.com /etc/nginx/sites-enabled/
```
3. **Проверьте конфигурацию Nginx:**
Убедитесь, что конфигурация корректная.
```bash
sudo nginx -t
```
### 3. Получение новых сертификатов
1. **Запустите Certbot для получения сертификатов:**
Теперь вместо переноса старых сертификатов лучше получить новые, чтобы избежать проблем с протекцией и сроками действия. Используйте следующую команду, чтобы получить новый сертификат:
```bash
sudo certbot --nginx -d A.mysite.com
```
2. **Настройте автоматическое обновление сертификатов:**
Убедитесь, что у вас настроено автоматическое обновление сертификатов. Это обычно делается автоматически при установке Certbot, но вы можете проверить с помощью:
```bash
sudo systemctl status certbot.timer
```
### 4. Переключение трафика на новый сервер
После успешного получения сертификатов и настройки Nginx, подождите некоторое время (до 24 часов) для распространения DNS, если вы изменили DNS-записи. Вы можете использовать команду `dig` или `nslookup`, чтобы проверить, корректно ли настроены записи.
### 5. Проверка
1. **Проверьте работу поддомена:**
Убедитесь, что поддомен функционирует правильно, и сертификат валиден, используя браузер или инструменты для проверки сертификатов.
2. **Проверьте автоматическое продление сертификатов:**
Убедитесь, что сертификаты могут обновляться автоматически, выполнив:
```bash
sudo certbot renew --dry-run
```
### Замечания
- Копировать директорию `/etc/letsencrypt` иногда не работает, так как могут быть различия в конфигурациях сертификатов, а также в метаданных, которые Certbot использует для управления сертификатами.
- Никакие сертификаты не должны быть перенесены или копированы между серверами — проще и надежнее получить новый сертификат на новом сервере.
Таким образом, следуя этим шагам, вы сможете успешно перенести поддомен на новый сервер с минимальными проблемами и сохранить управление сертификатами от Let's Encrypt.