December 22, 2024

1С IIS ошибка "ERR_SSL_KEY_USAGE_INCOMPATIBLE"

После обновления 1С и перепубликации базы на IIS столкнулся с проблемой, что сайт перестал открываться в Chrome подобных браузерах типа Yandex и Edge. На экране ошибка "ERR_SSL_KEY_USAGE_INCOMPATIBLE".

Перво причина была в том, что закончился срок действия сертификата. Сертификат был успешно перевыпущен по следующей инструкции:

1) Откройте Диспетчер IIS (Диспетчер служб IIS)
2) В левой панели выбираем имя вашего сервера IIS
3) Перейдите в Сертификаты сервера 4) Выберите Создать самоподписанный сертификат (правая панель) , введите Имя сертификата (например, Web Publication), Хранилище выбираем Личный затем нажмите ОК 5) В левой панели выбираем Default Web Site жмем правой кнопкой мыши и выбераем "Изменить привязки..."
6) Выберите https и нажмите Изменить и выберете ваш новый самоподписанный сертификат.

Но страница с 1С так и не открывалась выдавая ошибку "ERR_SSL_KEY_USAGE_INCOMPATIBLE"

Проблема была в банальном, при перевыпуске сертификата через оснастку, как описано выше, он выпускается на имя компьютера (т.к. ни каких доменов и т.п. у меня нет). В итоге при попытке открыть страницу по IP адресу в браузере и появляется ошибка т.к. имя в сертификате и имя в адресе браузера не совпадает.

Для того чтоб этого избежать можно выпустить самоподписанный сертификат через консоль PowerShell следующей командой:

New-SelfSignedCertificate -CertStoreLocation cert:\LocalMachine\My -DnsName *.xxx.com -NotAfter (Get-Date).AddYears(10) -FriendlyName '*.xxx.com (self-signed certificate for 10 years)'

где:

cert:\LocalMachine\My - это хранение (соответствует Сертификаты (Локальный компьютер) -> Личные -> Реестр)

*.xxx.com - это имя нашего сервера или в моем случае здесь указываем внешний IP адрес (как раз из-за не соответствия этого поля с адресом и получаем ошибку)

(Get-Date).AddYears(10) - срок действия в нашем случае 10 лет

'*.xxx.com (self-signed certificate for 10 years)' - это просто имя можем указать любое

После того как мы выпустили наш новый сертификат уже на IP или нужное нам доменное имя мы выполняем пункты 5-6 из вышеописанной инструкции.

Проверяем. Всё работает!