Имя сервера 1c-test. Работает под управлением Windows Server 2022 Standard. Сервер входит в домен windows domain.local. Имя контроллера домена (он же центр сертификации) DCN.
Выяснил, какой центр сертификации в домене. Название domain-DCN-CA на сервере DCN.
В каталоге E:\Certificate\ подготовил файл 1c-test-san.inf:
[Version]
Signature=»$Windows NT$»
[NewRequest]
Subject = «CN=1c-test.domain.local»
Exportable = TRUE
KeyLength = 2048
KeySpec = 1
KeyUsage = 0xA0
MachineKeySet = True
ProviderName = «Microsoft RSA SChannel Cryptographic Provider»
ProviderType = 12
RequestType = PKCS10
[Extensions]
2.5.29.17 = «{text}»
continue = «dns=1c-test.domain.local&»
continue = «dns=1c-test&»
continue = «dns=1c-test&»
В командной строке, запущенной от имени администратора, выполнил создание файла запроса:
certreq -new «E:\Certificate\1c-test-san.inf» «E:\Certificate\1c-test-san.req»
В командной строке, запущенной от имени администратора ДОМЕНА, выполнил запрос на выпуск сертификата:
certreq -submit -config «DCN\domain-DCN-CA» -attrib «CertificateTemplate:WebServer» «E:\Certificate\1c-test-san.req» «E:\Certificate\1c-test_san.cer»
В mmc добавил оснастку «Сертификаты». «Учетная запись компьютера» — «Локальный компьютер» — «Личное»
В админке IIS выбрал сервер 1C-TEST. Открыл «Сертификаты сервера». «Запрос установки сертификата». Выбрал файл сертификата, в поле «Понятное имя» присвоил условное имя. Хранилище — Личное.
Далее надо выполнить привязку сертификата. В админке IIS выбрал «Default Web Site». Справа «Привязки». Выбрал https 443. «Изменить». В поле SSL-сертификат выбрал выпущенный сертификат. Поле «Имя узла» оставил пустым. Иначе реагирует только на конкретное имя — короткое или длинное.
Далее надо переопубликовать базу на веб-сервере, запустив конфигуратор от имени администратора. В настройках ничего не надо трогать.
Надо настроить перенаправление http->https
Скачал модуль IIS URL Rewrite https://download.microsoft.com/download/1/2/8/128E2E22-C1B9-44A4-BE2A-5859ED1D4592/rewrite_amd64_en-US.msi
Установил. Выполнил перезагрузку IIS командой iisreset в командной строке от имени админа.
Создание правила перенаправления в IIS
- Откройте раздел перезаписи URL. В левом дереве диспетчера IIS нажмите на Default Web Site, а в центральной части дважды кликните по значку «Перезапись URL-адресов».
- Добавьте новое правило. В правой панели «Действия» нажмите «Добавить правило…». В открывшемся окне выберите «Пустое правило» в разделе «Правила для входящего трафика» и нажмите ОК.
- Заполните основные параметры.
• Имя. Введите понятное название, например HTTP to HTTPS Redirect.
• Сопоставление URL. В поле «Запрашиваемый URL» оставьте Соответствует шаблону, в поле «Использование» выберите Регулярные выражения, а в поле Шаблон введите ‘(.*)’ без кавычек. - Настройте условие проверки протокола. Разверните блок «Условия» и нажмите кнопку «Добавить…».
• Входной параметр условия. Введите {HTTPS}.
• Проверить, если входная строка. Оставьте Соответствует шаблону.
• Шаблон. Введите ^OFF$.
• Нажмите ОК в окне добавления условия. - Укажите действие переадресации. Прокрутите окно вниз до блока «Действие» и заполните поля:
• Тип действия . Выберите Перенаправление.
• URL-адрес перенаправления . Введите https://{HTTP_HOST}/{R:1}.
• Добавить строку запроса. Оставьте галочку включенной.
• Тип перенаправления. Выберите Постоянное (301) . - Примените настройки. В правой верхней панели «Действия» нажмите «Применить».
Выполните экспорт корневого сертификата центра сертификации DCN.
Оснастка certlm.msc.
- Найдите корневой сертификат. В левом дереве разверните Доверенные корневые центры сертификации (Trusted Root Certification Authorities) -> Сертификаты (Certificates). Найдите сертификат, в столбце «Кому выдан» которого указано имя вашего доменного CA (оно совпадает с полем «Кем выдан»).
- Запустите мастер экспорта. Нажмите по сертификату правой кнопкой мыши -> Все задачи (All Tasks) -> Экспорт… (Export).
- Выберите формат Base-64. Нажмите Далее, выберите пункт Файлы X.509 (.CER) в кодировке Base-64 (Base-64 encoded X.509 (.CER)) -> Далее.
- Сохраните файл. Укажите путь и имя файла (например, C:\rootCA.cer) и завершите мастер. Перенесите этот файл на ваш тестовый сервер 1С.
Добавьте корневой сертификат в платформу 1С (cacert.pem)
Этот шаг обязателен , чтобы фоновые регламентные задания 1С могли подключаться к веб-сервисам по HTTPS.
- Откройте файл rootCA.cer Блокнотом. Выделите и скопируйте всё его текстовое содержимое целиком, включая начальную и конечную строки:text
——BEGIN CERTIFICATE——
…текст сертификата…
——END CERTIFICATE—— - Найдите файл cacert.pem в каталоге платформы 1С. Перейдите в папку установленного сервера 1С 8.3.27. Для стандартной 64-битной установки путь выглядит так:
C:\Program Files\1cv8\8.3.27.XXXX\bin\cacert.pem
(Если используется 32-битная платформа, папка будет в C:\Program Files (x86)\1cv8…). - Сделайте резервную копию. Скопируйте cacert.pem в безопасное место (например, на Рабочий стол) перед редактированием.
- Вставьте сертификат в конец файла. Запустите Блокнот от имени Администратора, откройте в нём файл cacert.pem, прокрутите текст в самый низ, перейдите на новую строку и вставьте скопированный блок ——BEGIN CERTIFICATE—— … ——END CERTIFICATE——. Сохраните файл.
- Перезапустите службу сервера 1С. Откройте оснастку Службы (services.msc), найдите службу Агент сервера 1С:Предприятия 8.3 (1C:Enterprise 8.3 Server Agent) и нажмите Перезапустить.
Шаг 4. Этап не проверялся. Обновите адреса публикаций в настройках синхронизации 1С
Хотя 301-редирект настроен в IIS, встроенные HTTP- и WS-соединения 1С при автоматическом перенаправлении с HTTP на HTTPS могут сбрасывать авторизацию или метод POST-запроса. В настройках обмена нужно явно указать https://.
- Откройте настройки синхронизации данных в первой базе. Перейдите в раздел Администрирование (или НСИ и администрирование) -> Синхронизация данных -> Настройки синхронизации данных.
- Измените параметры подключения. Откройте карточку нужного обмена -> перейдите в Настроить параметры подключения (или Изменить правила выгрузки/загрузки -> параметры подключения через веб-сервис).
- Замените протокол в адресе. В поле Адрес публикации (URL веб-сервиса, например, http://domain.local) исправьте http:// на https:// и убедитесь, что имя сервера полностью совпадает с тем, что прописано в поле SAN вашего сертификата (https://domain.local).
- Проверьте подключение. Нажмите кнопку Проверить подключение (или Далее в мастере). Система должна успешно авторизоваться без ошибок SSL.
- Повторите для второй базы. Проделайте ту же замену http:// на https:// во встречной базе, участвующей в обмене.
Каждое обновление платформы должно сопровождаться добавлением в файл C:\Program Files\1cv8\8.3.27.XXXX\bin\cacert.pem корневого сертификата.