Обновлено 25.06.2021
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в рунете Pyatilistnik.org. В прошлый раз мы с вами разбирали, как можно из дома производить подключение к удаленному рабочему столу в сеть вашей компании. Идем дальше и сегодня я хочу с вами поделиться решением одной интересной ошибки с которой я столкнулся при попытке выпустить сертификат для одного пользователя на Windows Servver 2019. Ошибка звучала вот так «certificate chain processed currently 0x800b0112«, что не позволяло мне получить заведомо нужный мне результат.
Описание ошибки 0x800b0112
Начнем по порядку. У меня есть ряд серверов с программой по документообороту Directum, которая работает на безе виртуальных машин ESXI с гостевой ОС Windows Server 2019. Потребовалась на одном из серверов выпустить сертификат пользователя. В Directum было создано задание, при выполнении которого я получил ошибку:
Ошибка при экспорте файла сертификата
При попытке запросить такой же сертификат пользователя через mmc оснастку certmgr.msc я получил уже более подробную ошибку:
An error occurred while enrolling for a certificate. A certificate request could not be created. Error: A certification chain processed correctly, but one of the CA certificates is not trusted by the policy provider. 0x800b0112 (-2146762478 CERT_E_UNTRUSTEDCA)
Как устранить ошибку 0x800b0112
Из ошибки видно, что мы не можем выпустить сертификат потому, что у нас нет доверия к цепочки сертификации, имеется ввиду от рутового центра сертификации и ниже, где-то есть недоверенный. В идеале у вас все должно быть без крестиков, если где-то в пути сертификации красный крест, то данный сертификат нужно поставить. В моем случае все было корректно.
Я помнил, что если вы видите наличие сертификатов корневого центра сертификации и промежуточных в вашей оснастке, это не говорит, что ваша система их видит. Как ни странно есть ветка реестра, в которой должны лежать BLOB файлы от ROOT CA и issuing CA. Чтобы удостовериться, что у вас там все хорошо, вам нужно выполнить команду в командной строке или оболочке PowerShell.
certutil -viewstore -user -enterprise NTAuth
Как видите моя операционная система не видит корневого сертификата.
Как это обойти, самый простой метод, это выгрузить рабочую ветку реестра с сервера, где проблем с запросом сертификата нет. У меня для этого есть RDS ферма. Запустите через окно выполнить реестр Windows и перейдите по пути:
HKEY_LOCAL_MACHINESOFTWAREMicrosoft EnterpriseCertificatesNTAuthCertificates
На сервере, где имеет проблема, данная ветка была пуста.
Идем на сервер, где проблем нет и экспортируем папку Certificates.
Далее вам необходимо задать имя для экспортируемого файла. Если посмотреть его состав через обычный блокнот, то будет вот такой вид.
После этого вы смело переносите по сети данный файл на сервер, где получали ошибку «Error: A certification chain processed correctly, but one of the CA certificates is not trusted by the policy provider. 0x800b0112 (-2146762478 CERT_E_UNTRUSTEDCA)» и импортируете ее через двойной клик по нему. После чего согласитесь с импортом ветки реестра
Проверяем теперь через команду указанную выше наличие на сервере корневых сертификатов. Теперь все отображается верно.
После этих не хилых действий у меня заработал выпуск сертификата на данном сервере и я восстановил работу Directum. С вами был Иван Сёмин, автор и создатель IT портала Pyatilistnik.org.
Использую:
ОС ubuntu 18.04 серверная
PHP 7.4.23 (cli) (built: Aug 26 2021 15:51:17) ( NTS )
согласно инструкции выполнил установку расширения
https://docs.cryptopro.r…hpcades/phpcades-install
Команды при установки
———————sudo apt-get install libboost-dev
sudo apt-get install libxml2-dev
sudo apt install php7.4-dev
sudo apt install g++
скачиваем актуальную версию тут https://cryptopro.ru/products/csp/downloads
tar xvf linux-amd64_deb.tgz
cd linux-amd64_deb
sudo ./install.sh
sudo apt install ./lsb-cprocsp-devel*.deb
cd
wget https://cryptopro.ru/sit…cades_linux_amd64.tar.gz
tar xvf cades_linux_amd64.tar.gz
cd cades_linux_amd64/
sudo dpkg -i cprocsp-pki-cades-64_2.0.14071-1_amd64.deb
sudo dpkg -i cprocsp-pki-phpcades-64_2.0.14071-1_amd64.deb
sudo apt update
sudo apt upgrade
php -v
скачиваем пакет пхп исходники относительно версии тут https://www.php.net/downloads.php
cd
tar xzf php-7.4.23.tar.gz
cd php-7.4.23/
sudo apt-get install -y libsqlite3-dev
./configure —prefix=/opt/php
sudo nano /opt/cprocsp/src/phpcades/Makefile.unix
добавляем путь к исходникам в переменной PHPDIR
cd
wget https://www.cryptopro.ru…s/php7_support.patch.zip
unzip php7_support.patch.zip
sudo cp ./php7_support.patch /opt/cprocsp/src/phpcades
cd /opt/cprocsp/src/phpcades
sudo patch -p0 < ./php7_support.patch
cd /opt/cprocsp/src/phpcades
sudo su
eval `/opt/cprocsp/src/doxygen/CSP/../setenv.sh —64`; make -f Makefile.unix
exit
смотрим путь к дериктории с разширениями
php -i | grep extension_dir
sudo ln -s /opt/cprocsp/src/phpcades/libphpcades.so /usr/lib/php/20190902/libphpcades.so
я навсякий дакинул их везде )
sudo ln -s /opt/cprocsp/src/phpcades/libphpcades.so /usr/lib/php/libphpcades.so
sudo ln -s /opt/cprocsp/src/phpcades/libphpcades.so /usr/lib/php/7.4/libphpcades.so
sudo ln -s /opt/cprocsp/src/phpcades/libphpcades.so /usr/lib/php/20170718/libphpcades.so
добавляем в конф разширение
sudo nano /etc/php/7.4/fpm/php.ini
extension=libphpcades.so
extension=/opt/cprocsp/src/phpcades/libphpcades.so
sudo service php7.4-fpm restart
Добавление сертификатов
корневой и промежуточный взял от сюда — http://testca2012.cryptopro.ru/ui/Default.aspx
установил их:
установка корневого сертификата — sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -file rootca.cer
выхлоп:
Certmgr 1.1 (c) «Crypto-Pro», 2007-2021.
Program for managing certificates, CRLs and stores.
Installing:
=============================================================================
1——-
Issuer : C=RU, INNLE=7717107991, E=info@cryptopro.ru, OGRN=1037700085444, S=77 Москва, L=Москва, STREET=ул. Сущёвский вал д. 18, O=»ООО «»КРИПТО-ПРО»»», CN=»Тестовый головной УЦ ООО «»КРИПТО-ПРО»» ГОСТ 2012 (УЦ 2.0)»
Subject : C=RU, INNLE=7717107991, E=info@cryptopro.ru, OGRN=1037700085444, S=77 Москва, L=Москва, STREET=ул. Сущёвский вал д. 18, O=»ООО «»КРИПТО-ПРО»»», CN=»Тестовый головной УЦ ООО «»КРИПТО-ПРО»» ГОСТ 2012 (УЦ 2.0)»
Serial : 0x03453C7B0071ADD9AB4C5FC8A8451F97A7
SHA1 Thumbprint : 9e504e9099c79aa0883fbbfd619662739ac25420
SubjKeyID : 86967f858c1b31aa92a68d14f28cbb1f212f5c3a
Signature Algorithm : ГОСТ Р 34.11-2012/34.10-2012 256 бит
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before : 26/07/2021 07:18:42 UTC
Not valid after : 26/07/2036 07:18:42 UTC
PrivateKey Link : No
=============================================================================
[ErrorCode: 0x00000000]
установка промежуточный сертификата — sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mCa -file subca.cer
выхлоп:
ertmgr 1.1 (c) «Crypto-Pro», 2007-2021.
Program for managing certificates, CRLs and stores.
Installing:
=============================================================================
1——-
Issuer : C=RU, INNLE=7717107991, E=info@cryptopro.ru, OGRN=1037700085444, S=77 Москва, L=Москва, STREET=ул. Сущёвский вал д. 18, O=»ООО «»КРИПТО-ПРО»»», CN=»Тестовый головной УЦ ООО «»КРИПТО-ПРО»» ГОСТ 2012 (УЦ 2.0)»
Subject : INNLE=7717107991, E=info@cryptopro.ru, OGRN=1037700085444, C=RU, S=77 Москва, L=Москва, STREET=ул. Сущёвский вал д. 18, O=»ООО «»КРИПТО-ПРО»»», CN=»Тестовый подчиненный УЦ ООО «»КРИПТО-ПРО»» ГОСТ 2012 (УЦ 2.0)»
Serial : 0x03F898850071ADE18C4D7B4B46C57F1542
SHA1 Thumbprint : 54863e37ea0a8e86361bc8d82d7aa3f934e2eb76
SubjKeyID : 758d1bf732d2d0f25f1e0f9e1379ebfc20fe9e2f
Signature Algorithm : ГОСТ Р 34.11-2012/34.10-2012 256 бит
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before : 26/07/2021 07:56:26 UTC
Not valid after : 26/07/2031 08:06:26 UTC
PrivateKey Link : No
Identification Kind : Without personal presence by international passport
CA cert URL : http://testca2012.crypto…8d14f28cbb1f212f5c3a.crt
CDP : http://testca2012.crypto…8d14f28cbb1f212f5c3a.crl
=============================================================================
[ErrorCode: 0x00000000]
далее контейнер и получить ключь пользователя :
sudo -u www-data /opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -fqcn -verifyc
выхлоп:
CSP (Type:80) v5.0.10008 KC1 Release Ver:5.0.12000 OS:Linux CPU:AMD64 FastCode:READY:AVX. DISABLED:RSA;
AcquireContext: OK. HCRYPTPROV: 14571555
\.HDIMAGETest
OK.
Total: SYS: 0.010 sec USR: 0.000 sec UTC: 0.020 sec
[ErrorCode: 0x00000000]
sudo /opt/cprocsp/bin/amd64/csptest -keyset -newkeyset -provtype 80 -cont ‘\.HDIMAGETest1’
выхлоп:
sudo -u www-data /opt/cprocsp/bin/amd64/csptest -keyset -newkeyset -provtype 80 -cont ‘\.HDIMAGETest1’
CSP (Type:80) v5.0.10008 KC1 Release Ver:5.0.12000 OS:Linux CPU:AMD64 FastCode:READY:AVX. DISABLED:RSA;
AcquireContext: OK. HCRYPTPROV: 22579315
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2012 KC1 CSP
Container name: «Test1»
Signature key is not available.
Attempting to create a signature key…
Press keys to provide random data…
[……………………………………………………………………]
Crypto-Pro GOST R 34.10-2012 KC1 CSP requests new container password
New password:
Confirm password:
a signature key created.
Exchange key is not available.
Attempting to create an exchange key…
Press keys to provide random data…
[……………………………………………………………………]
an exchange key created.
Keys in container:
signature key
exchange key
Extensions:
OID: 1.2.643.2.2.37.3.9
PrivKey: Not specified — 01.12.2022 11:36:02 (UTC)
OID: 1.2.643.2.2.37.3.10
PrivKey: Not specified — 01.12.2022 11:36:16 (UTC)
Total: SYS: 0.000 sec USR: 0.120 sec UTC: 22.510 sec
[ErrorCode: 0x00000000]
sudo -u www-data /opt/cprocsp/bin/amd64/cryptcp -creatrqst -dn «INN=007814508921, E=12@12.ru, C=RU, CN=Сергей Сгибнев, SN=Сгибнев» -nokeygen -both -ku -cont ‘Test1’ cert.req
выхлоп:
CryptCP 5.0 (c) «Crypto-Pro», 2002-2021.
Command prompt Utility for file signature and encryption.
Crypto-Pro GOST R 34.10-2012 KC1 CSP requests container password
Type password:
Request is saved in file.
[ErrorCode: 0x00000000]
содержимое полученного файл cert.req нужно для получения сертификата на сайте — https://www.cryptopro.ru/certsrv/certrqxt.asp
получаем там два сертификата certnew.p7b и certnew.cer
далее привязываю на контейнер
sudo -u www-data /opt/cprocsp/bin/amd64/certmgr -inst -store uMy -file certnew.p7b -cont ‘\.HDIMAGETest’
проверяю сертификат на пользователя
sudo -E -u www-data /opt/cprocsp/bin/amd64/certmgr —list
выхлоп:
Certmgr 1.1 (c) «Crypto-Pro», 2007-2021.
Program for managing certificates, CRLs and stores.
=============================================================================
1——-
Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject : INN=007814508921, E=12@12.ru, C=RU, CN=Сергей Сгибнев, SN=Сгибнев
Serial : 0x12005821B6FA009C1E9DE15B430001005821B6
SHA1 Thumbprint : 4c51e4003793320d242215704fb439c5f12fdf72
SubjKeyID : 3460847f60e0aab79be35cfcc3cc2d170ec4b071
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2012 256 бит (512 bits)
Not valid before : 01/09/2021 03:49:53 UTC
Not valid after : 01/12/2021 03:59:53 UTC
PrivateKey Link : No
CA cert URL : http://testca.cryptopro….Test%20Center%202(1).crt
OCSP URL : http://testca.cryptopro.ru/ocsp/ocsp.srf
CDP : http://testca.cryptopro….Test%20Center%202(1).crl
=============================================================================
[ErrorCode: 0x00000000]
в итоге выходит ошибка : «A certificate chain processed correctly, but terminated in a root certificate which is not trusted by the trust provider (0x800B0109)»
подскажите что не так
Отредактировано пользователем 1 сентября 2021 г. 20:30:02(UTC)
| Причина: Не указана
Dmitriy32546 |
|
Статус: Новичок Группы: Участники
|
Добрый день. CryptCP 5.0 (c) «Crypto-Pro», 2002-2021. Установил серты тестового УЦ: Серты генерировал тут При установке корневого сертификата получил предупреждение (ввел «o»): Информация о установленном сертификате: Промежуточные: Корневые: Написан код для pycades: signer.CheckCertificate = True hashedData = pycades.HashedData() signedData = pycades.SignedData() При попытке выполнить подпись(signedData.SignHash) получаю ошибку: |
|
|
Андрей * |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 457 раз |
Здравствуйте. Настолько сложно уже перевести или по коду найти ответ?) Issuer сверьте, почему в корневых нет сертификата УЦ в котором получали? p.s. Кто и как заставляет использовать ГОСТ-2001 в 2021 году? |
Техническую поддержку оказываем тут |
|
|
WWW |
Dmitriy32546 |
|
Статус: Новичок Группы: Участники
|
Удалось победить проблему заново выкачав все серты тестового УЦ криптопро, что было так и не понял. Цитата: Issuer сверьте, почему в корневых нет сертификата УЦ в котором получали? В корневых есть сертификат УЦ росбанка. ROOT CA ключ Цитата: Почему не используете сертификаты с ГОСТ-2012? Вроде 2012 везде. Что еще можно проверить, в чем может быть проблема ? При попытке подписи ошибка: Отредактировано пользователем 10 ноября 2021 г. 17:54:44(UTC) |
|
|
Руст2007 |
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 4 раз |
Коллеги, добрый день. Код:
|
|
|
Санчир Момолдаев |
|
Статус: Сотрудник Группы: Модератор, Участники Сказал(а) «Спасибо»: 86 раз |
Автор: Руст2007 Коллеги, добрый день. Код:
отвечено тут |
Техническую поддержку оказываем тут |
|
|
|
Пользователи, просматривающие эту тему |
Guest |
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Устранение ошибки «Цепочка сертификатов обработана, но обработка прервана на корневом сертификате, у которого отсутствует отношение доверия с поставщиков доверия» при установке .NET Framework 4.7.2
Что такое .net Framework?
.NET Framework 4.7.2 – фреймворк (компонент, программная платформа), который используется для разработки программного обеспечения. Данный фреймворк необходим в т.ч. для работы программы GBS.Market и должен быть установлен на компьютер, на котором используется программа.
Обычно, данный компонент устанавливается вместе с программой. В некоторых случаях необходима ручная установка данного компонента.
Ошибка при установке .NET Framework
В процессе установки .NET Framework на компьютерах, где не установлены актуальные обновления, может возникнуть ошибка. Обычно, это компьютеры, работающие под управлением Windows 7.
Текст ошибки:
Установка Net Framework не завершена; причина:
Цепочка сертификатов обработана, но обработка корневого прервана на корневом сертификате, у которого отсутствует отношение доверия с поставщиком доверия.
Сообщение об ошибке на английском языке:
A certificate chain could not be built to a trusted root authority . A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
Для того чтобы установка .NET Framework прошла корректно, необходимо установить корневой сертификат безопасности.
Установка сертификата
Скачайте сертификат Microsoft Root Certificate Authority 2011 по ссылке ниже.
Откройте папку, в которую сохранили сертификат. Кликните дважды на файле сертификата.
Если появилось окно с предупреждением системы безопасности – нажмите “Открыть”.
В окне свойств сертификата нажмите “Установить”.
После того как откроется мастер импорта сертификатов, выберите вариант “Текущий пользователь” и нажмите “Далее”
На следующей странице мастера импорта сертификатов необходимо выбрать вариант “Поместить все сертификаты в следующее хранилище” и нажать кнопку “Обзор”.
В списке хранилищ необходимо выбрать “Доверенные корневые центры сертификации” и нажать кнопку “ОК”.
После выбора хранилища для сертификата убедитесь, что хранилище указано верно и нажмите кнопку “Далее”
На странице завершения импорта нажмите “Готово”.
Если импорт сертификата прошел успешно, появится соответствующее сообщение.
Повторная установка .NET Framework
После того как установлен необходимый сертификат, попробуйте заново установить .NET Framework 4.7.2.
Проиграть видео
Попробуйте GBS.Market
БЕСПЛАТНО
GBS.Market – удобная и доступная кассовая программа. Подойдет для розничного магазина и кафе. 30 дней бесплатно!
-
Опубликовано:
8 декабря, 2021 -
Изменено: 7 месяцев назад -
Нет комментариев -
Просмотров
3 424
-
.net framework, windows
Inline Feedbacks
Показать все комментарии
I want to extract the .net 4.7 framework prerequisites with my main msı.
But when ı try to install .net installation give an error.
After ı try to install .net framework only.
.net framework installation gives an error
.net framework 4.7 a certificate chain processed but terminated in a root.
How to certificate it with Wix?
<ExePackage
InstallCommand="/q /norestart /ChainingPackage "[WixBundleName]" /log "[NetFx47FullLog].html""
RepairCommand="/q /norestart /repair /ChainingPackage "[WixBundleName]" /log "[NetFx47FullLog].html""
UninstallCommand="/uninstall /q /norestart /ChainingPackage "[WixBundleName]" /log "[NetFx47FullLog].html""
PerMachine="yes"
DetectCondition="!(wix.NetFx47WebDetectCondition)"
InstallCondition="NetFrameWorkCheckbox = 1"
Id="NetFx47Web"
Vital="yes"
Permanent="yes"
Protocol="netfx4"
DownloadUrl="$(var.NetFx47WebLink)"
LogPathVariable="NetFx47FullLog"
Compressed="yes"
Name="!(wix.NetFx47WebPackageDirectory)NDP47-KB3186500-Web.exe"
SourceFile=".prerequisitesNNDP47-KB3186497-x86-x64-AllOS-ENU.exe"
>
Stein Åsmul
39.8k25 gold badges90 silver badges163 bronze badges
asked Oct 1, 2018 at 7:46
I also met the same issue when installing .NET framework 4.7 on the PC with Win 7 sp1 system.
The solution with detailed steps is below can be seen in:
https://stackoverflow.com/a/60812129/6075331
Then the issue will hopefully be resolved.
answered Apr 8, 2020 at 7:16
Bravo YeungBravo Yeung
8,4045 gold badges37 silver badges44 bronze badges
A solution that worked for .NET Framework 4.8 (and hopefully 4.7 as well):
Your PC may be missing a certificate: For my problem, I needed to import MicRooCerAut2011.crt
to console root (windows + R, type «mmc», then press Enter).
Here are step-by-step instructions on how to do this (the text is in Indonesian, but the images should make sense anyway) and where to download the certificate file from.
answered Mar 2, 2021 at 2:37
1
Update:
Recently down-voted. Please let others know what didn't work. I have not looked at this issue for a long time.
Heath Stewart’s Blog: I think you will find the explanation here: A certificate chain could not be built to a trusted root authority. Essentially some components in Visual Studio 2012 were signed with a SHA256 hash certificate not installed on all Windows versions.
Are you on a virtual? It might not be updated — running Windows Update might fix the whole problem? You need a
root certificate update
. I would try that before reading the information below. I would assume the problem would be fixed by now via Windows Update, but perhaps not?
You will find links in the above, linked blog. I will just inline a few of the links here (in case the blog disappears):
- KB2746268
- From MSDN Forums
- Configure Trusted Roots and Disallowed Certificates
And a general link just for reference: .NET Framework deployment guide for developers.
answered Oct 2, 2018 at 2:30
Stein ÅsmulStein Åsmul
39.8k25 gold badges90 silver badges163 bronze badges
2