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

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

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

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