Содержание
- Изменение доменных имен и обновление SSL-сертификатов модулей Корпоративного сервера 2024
- Подготовка
- Шаг 1. Настройка DNS и подготовка SSL-сертификатов
- Шаг 2. Изменение доменных имен в Nginx
- Шаг 3. Обновление файла hosts
- Шаг 4. Изменение URL в базе данных
- Шаг 5. Обновление файлов приложения для версии 2025.1.18.15276
- Шаг 6. Перезапуск сервисов
- Шаг 7. Настройка почтового сервера
- Шаг 8. Проверка работы системы
- Возможные проблемы
Изменение доменных имен и обновление SSL-сертификатов модулей Корпоративного сервера 2024
В статье описано, как изменить доменные имена модулей Корпоративного сервера 2024 и пути к SSL-сертификатам.
Подготовка
Все команды в инструкции выполняются от имени пользователя root.
Для примеров используются два обозначения:
- domain — старое доменное имя;
- new_domain — новое доменное имя.
Перед началом работ создайте резервные копии базы данных и конфигураций, которые будут изменяться:
su - postgres -c 'pg_dump -U postgres cddisk' > /root/cddisk_before_domain_change.sql cp -a /etc/nginx/sites-available /root/sites-available_before_domain_change cp -a /etc/postfix/main.cf /root/main.cf_before_domain_change cp -a /etc/dovecot/dovecot.conf /root/dovecot.conf_before_domain_change cp -a /etc/rabbitmq/rabbitmq-env.conf /root/rabbitmq- env.conf_before_domain_change
Если в вашей установке используются другие конфигурационные файлы Nginx или почтового сервера, включите их в резервную копию.
Шаг 1. Настройка DNS и подготовка SSL-сертификатов
На DNS-сервере добавьте или измените записи для нового домена:
new_domain admin.new_domain cddisk.new_domain ds.new_domain cdmail.new_domain calendar.new_domain contacts.new_domain projects.new_domain pages.new_domain forms.new_domain mx1.new_domain
DNS-записи настраиваются на DNS-сервере или у провайдера DNS, а не в Корпоративном сервере.
Имя mx1.new_domain, используемое RabbitMQ, должно разрешаться в IP-адрес сервера, на котором работает почтовый сервер.
Подготовьте SSL-сертификат и закрытый ключ для новых адресов. Если используется один wildcard-сертификат, он должен покрывать все используемые поддомены; если wildcard не используется, подготовьте сертификаты для соответствующих поддоменов.
Разместите файлы сертификата и закрытого ключа по путям, которые будут указаны в конфигурации Nginx, например:
/etc/nginx/ssl/new_domain.crt /etc/nginx/ssl/new_domain.key
Так же при использовании Сервера документов разместите файлы сертификата и закрытого ключа по следующим путям:
/var/www/r7-office/Data/ssl/new_domain.crt /var/www/r7-office/Data/ssl/new_domain.key
Закрытый ключ не должен быть доступен посторонним пользователям; права на файлы задайте в соответствии с принятой в вашей системе схемой доступа Nginx.
Например:
chown root:nginx /etc/nginx/ssl/new_domain.key chmod 640 /etc/nginx/ssl/new_domain.key chmod 644 /etc/nginx/ssl/new_domain.crt chown root:nginx /var/www/r7-office/Data/ssl/new_domain.key chmod 640 /var/www/r7-office/Data/ssl/new_domain.key chmod 644 /var/www/r7-office/Data/ssl/new_domain.crt
Перед продолжением убедитесь, что Nginx может читать сертификат и ключ.
Шаг 2. Изменение доменных имен в Nginx
Перейдите в каталог конфигураций:
cd /etc/nginx/sites-available/
В параметре server_name замените старый домен на новый в следующих файлах
- admin;
- calendar;
- cddisk;
- cdmail;
- contacts;
- projects;
- pages;
- forms.
Пример:
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
if ($scheme != "https")
{
return 301 https://$host$request_uri;
}
root /var/www/r7-office/admin;
index index.html;
server_name admin.new_domain;
server_tokens off;
...
Также укажите пути к подготовленным сертификату и закрытому ключу:
ssl_certificate /etc/nginx/ssl/new_domain.crt; ssl_certificate_key /etc/nginx/ssl/new_domain.key;
Убедитесь, что файлы сертификата и закрытого ключа находятся по указанным путям и доступны Nginx.
Сервер документов
Этот подраздел требуется только при использовании Сервера документов.
Измените файл конфигурации:
/etc/r7-office/documentserver/nginx/ds.conf
В открывшемся файле найдите строки с server_name и внесите правки в них:
include /etc/nginx/includes/http-common.conf;
## Normal HTTP host
server {
listen 0.0.0.0:80;
listen [::]:80;
server_name ds.new_domain;
server_tokens off;
set $secure_link_secret 9FcGbTsMJqbtctyNTICK;
## Redirects all traffic to the HTTPS host
root /nowhere; ## root doesn't have to be a valid path since we are redirecting
rewrite ^ https://$host$request_uri? permanent;
}
#HTTP host for internal services
server {
listen 127.0.0.1:80;
listen [::1]:80;
server_name localhost;
server_tokens off;
set $secure_link_secret 9FcGbTsMJqbtctyNTICK;
include /etc/nginx/includes/ds-common.conf;
include /etc/nginx/includes/ds-docservice.conf;
}
## HTTPS host
server {
listen 0.0.0.0:443 ssl http2;
listen [::]:443 ssl;
server_name ds.new_domain;
server_tokens off;
set $secure_link_secret 9FcGbTsMJqbtctyNTICK;
root /usr/share/nginx/html
....
В HTTP- и HTTPS-блоках замените server_name:
server_name ds.new_domain;
Также проверьте пути к сертификату и закрытому ключу в HTTPS-блоке:
ssl_certificate /var/www/r7-office/Data/ssl/new_domain.crt; ssl_certificate_key /var/www/r7-office/Data/ssl/new_domain.key;
После изменения всех конфигураций Nginx проверьте конфигурацию и только затем перезапустите Nginx.
nginx -t
Если nginx -t выдал ошибку, исправьте конфигурацию и перезапускайте Nginx только после успешной проверки.
systemctl restart nginx
Шаг 3. Обновление файла hosts
Откройте файл:
nano /etc/hosts
Замените старые домены на новые.
Например, вместо нижеуказанных доменных имен (domain в данном случае старое доменное имя):
127.0.0.1 localhost 127.0.0.1 domain 127.0.0.1 admin.domain 127.0.0.1 contacts.domain 127.0.0.1 projects.domain 127.0.0.1 cddisk.domain 127.0.0.1 ds.domain 127.0.0.1 cdmail.domain 127.0.0.1 calendar.domain 127.0.0.1 pages.domain 127.0.0.1 forms.domain
укажите:
127.0.0.1 localhost 127.0.0.1 new_domain 127.0.0.1 admin.new_domain 127.0.0.1 contacts.new_domain 127.0.0.1 projects.new_domain 127.0.0.1 cddisk.new_domain 127.0.0.1 ds.new_domain 127.0.0.1 cdmail.new_domain 127.0.0.1 calendar.new_domain 127.0.0.1 pages.new_domain 127.0.0.1 forms.new_domain 127.0.0.1 mx1.new_domain
Замените имя new_domain на ваш домен.
Если модуль, например Сервер документов, установлен на отдельном сервере, вместо 127.0.0.1 укажите IP-адрес этого сервера.
Имя mx1.new_domain, используемое RabbitMQ, также должно разрешаться в адрес сервера, на котором работает почтовый сервер.
Шаг 4. Изменение URL в базе данных
Подключитесь к базе cddisk:
su - postgres -c 'psql cddisk'
drawUrl изменяйте, только если используется P7-Графика.
Выполните соответствующие команды для используемых модулей:
UPDATE public."MessageSettings" SET "Value"='https://draw.new_domain' WHERE "Key" = 'drawUrl'; UPDATE public."MessageSettings" SET "Value"='https://cddisk.new_domain' WHERE "Key" = 'siteUrl'; UPDATE public."MessageSettings" SET "Value"='https://cddisk.new_domain/api' WHERE "Key" = 'apiUrl'; UPDATE public."MessageSettings" SET "Value"='https://cddisk.new_domain' WHERE "Key" = 'apiUrlInternal'; UPDATE public."MessageSettings" SET "Value"='https://admin.new_domain' WHERE "Key" = 'adminUrl'; UPDATE public."MessageSettings" SET "Value"='https://cdmail.new_domain' WHERE "Key" = 'mailUrl'; UPDATE public."MessageSettings" SET "Value"='https://calendar.new_domain' WHERE "Key" = 'calendarUrl'; UPDATE public."MessageSettings" SET "Value"='https://ds.new_domain' WHERE "Key" = 'documentServerUrl'; UPDATE public."MessageSettings" SET "Value"='new_domain' WHERE "Key" = 'domain'; UPDATE public."MessageSettings" SET "Value"='https://projects.new_domain' WHERE "Key" = 'projectsUrl'; UPDATE public."MessageSettings" SET "Value"='https://contacts.new_domain' WHERE "Key" = 'contactsUrl'; UPDATE public."MessageSettings" SET "Value"='https://pages.new_domain' WHERE "Key" = 'pagesUrl'; UPDATE public."MessageSettings" SET "Value"='https://forms.new_domain' WHERE "Key" = 'formsUrl';
Проверка изменений
SELECT *
FROM public."MessageSettings"
WHERE "Key" IN (
'siteUrl',
'apiUrl',
'apiUrlInternal',
'adminUrl',
'mailUrl',
'calendarUrl',
'documentServerUrl',
'domain',
'projectsUrl',
'contactsUrl',
'pagesUrl',
'formsUrl'
);
Убедитесь, что значения содержат новые доменные имена.
Шаг 5. Обновление файлов приложения для версии 2025.1.18.15276
Для версии 2025.1.18.15276 и модулей Р7-Страницы, Р7-Формы и Р7-Управление необходимо дополнительно заменить URL в файлах приложения.
Замена выполняется в файлах:
/opt/r7-office/java-maker/external.properties /var/www/r7-office/pages/assets/index-Dz0X1_o4.js /var/www/r7-office/pages/assets/index-Dz0X1_o4.js.map /var/www/r7-office/forms/assets/index-BswB2Xpv.js.map /var/www/r7-office/forms/assets/index-DQhIhQPc.js.map /var/www/r7-office/forms/assets/index-yItR3VoS.js.map /var/www/r7-office/forms/assets/index-yItR3VoS.js /var/www/r7-office/forms/assets/index-DQhIhQPc.js /var/www/r7-office/forms/assets/index-BswB2Xpv.js
После обновления продукта имена файлов в каталогах assets могут измениться. Перед выполнением команд проверьте наличие файлов.
5.1. Модуль Р7-Страницы
Замените https://pages.domain.ru на https://pages.new_domain.ru:
sed -i".bak_$(date +%Y%m%d_%H%M%S)" \ 's|https://pages.domain.ru|https://pages.new_domain.ru|g' \ /opt/r7-office/java-maker/external.properties \ /var/www/r7-office/pages/assets/index-Dz0X1_o4.js \ /var/www/r7-office/pages/assets/index-Dz0X1_o4.js.map \
5.2. Модуль Р7-Формы
Замените https://forms.domain.ru на https://forms.new_domain.ru:
sed -i".bak_$(date +%Y%m%d_%H%M%S)" \ 's|https://forms.domain.ru|https://forms.new_domain.ru|g' \ /opt/r7-office/java-maker/external.properties \ /var/www/r7-office/forms/assets/index-BswB2Xpv.js.map \ /var/www/r7-office/forms/assets/index-DQhIhQPc.js.map \ /var/www/r7-office/forms/assets/index-yItR3VoS.js.map \ /var/www/r7-office/forms/assets/index-yItR3VoS.js \ /var/www/r7-office/forms/assets/index-DQhIhQPc.js \ /var/www/r7-office/forms/assets/index-BswB2Xpv.js
5.3. Модуль Р7-Управление
Замените https://admin.domain.ru на https://admin.new_domain.ru:
sed -i".bak_$(date +%Y%m%d_%H%M%S)" \ 's|https://admin.domain.ru|https://admin.new_domain.ru|g' \ /opt/r7-office/java-maker/external.properties
Шаг 6. Перезапуск сервисов
После изменения Nginx, базы данных и файла hosts перезапустите сервисы:
supervisorctl restart cddisk:processing supervisorctl restart cddisk:api
После изменений в файлах Р7-Страниц, Р7-Форм и Р7-Управления перезапустите java-maker.service:
systemctl restart java-maker.service
Шаг 7. Настройка почтового сервера
После изменения доменного имени Корпоративного сервера обновите домен в конфигурации Postfix, Dovecot, добавьте новый домен в почтовый сервер и измените имя ноды RabbitMQ.
Замена домена в Postfix и Dovecot
Выполните:
sed -i".bak_$(date +%Y%m%d_%H%M%S)" \ 's|domain|new_domain|g' \ /etc/postfix/main.cf /etc/dovecot/dovecot.conf
где:
- domain.ru — старый домен;
- new_domain.ru — новый домен.
Перезапустите Postfix и Dovecot, чтобы изменения вступили в силу:
systemctl restart postfix systemctl restart dovecot
Добавление нового домена в почтовый сервер
Выполните:
sh /script/create_domain.sh new_domain
где, new_domain — новый домен.
Изменение имени ноды RabbitMQ
Откройте файл:
/etc/rabbitmq/rabbitmq-env.conf
Измените значение NODENAME на:
NODENAME=rabbit@mx1.new_domain
где, new_domain.ru — новый домен.
Перезапустите сервис RabbitMQ:
systemctl restart rabbitmq-server
Проверьте, что RabbitMQ запущен и что пользователи, очереди и права сохранились согласно согласованной процедуре.
Проверьте запуск RabbitMQ:
systemctl status rabbitmq-server
Ожидаемый результат: в строке Active отображается active (running), что означает успешный запуск RabbitMQ.
Проверьте пользователей RabbitMQ:
rabbitmqctl list_users
Должен появиться список пользователей, например:
Listing users ... user tags guest [administrator]
Проверьте очереди RabbitMQ:
rabbitmqctl list_queues name
Ожидаемый результат: выводится список существующих очередей RabbitMQ. Наличие необходимых очередей подтверждает их сохранность после изменения имени ноды.
Проверьте права RabbitMQ
rabbitmqctl list_permissions
Ожидаемый результат: отображается список прав пользователей RabbitMQ. Для пользователя guest присутствуют права configure, write и read, что подтверждает сохранение настроек доступа.
Шаг 8. Проверка работы системы
После выполнения всех изменений очистите кэш браузера, чтобы исключить использование устаревших доменных имен.
Откройте портал по новому адресу и проверьте:
- вход в портал и открытие основных модулей;
- открытие документа в редакторе;
- открытие Р7-Страниц и Р7-Форм, если они используются;
- отправку письма через почтовый сервер;
- доступность Сервера документов, если он используется.
- Проверка работы почты: отправьте тестовое письмо с одного пользователя на другого и убедитесь, что письмо успешно отправлено и получено.
Если какой-либо пункт проверки не проходит, сначала проверьте DNS-разрешение нового имени, сертификат и конфигурацию Nginx, затем состояние соответствующего сервиса.
Возможные проблемы
| Проблема | Решение |
|---|---|
| Новое имя не открывается | Проверьте DNS и записи файле hosts. |
| Nginx не запускается | Выполните nginx -t и исправьте указанную конфигурацию. |
| Письма по почте не отправляются или не принимаются | Проверьте конфигурации Postfix и Dovecot, перезапуск сервисов и наличие нового домена. |
| RabbitMQ запустился без прежних пользователей или очередей? | Проверьте состояние RabbitMQ, наличие пользователей, очередей и прав. При отсутствии данных обратитесь к согласованной процедуре восстановления. |













