Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы документов
Редакторы документов
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
ВКС и мессенджер
ВКС и мессенджер
Мобильные редакторы
Мобильные редакторы
Почтовый сервер
Почтовый сервер
Органайзер
Органайзер
Сервер лицензирования
Сервер лицензирования
Файл-Экспресс
Файл-Экспресс
Аналитика
Аналитика
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Изменение доменных имен и обновление ssl-сертификатов модулей Корпоративного сервера 2024

Обновлено: 07.10.26

Инструкция актуальна для версий продукта: 2025.1.18.15276 – 2026.1.12.16832

Изменение доменных имен и обновление 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, наличие пользователей, очередей и прав. При отсутствии данных обратитесь к согласованной процедуре восстановления.

Была ли эта статья полезной?

Поделитесь пожалуйста своим мнением

      В статье есть ошибкиРекомендации не помоглиТекст трудно понятьСодержание статьи не соответствует заголовкуДругое