18.06.2007 20:02:18После переноса ЦР и ЦС на новый сервер не поулчается создать запрос на сертификат Ответов: 31
Дмитрий
Здравствуйте: Перенесли установленные ЦС и ЦР (совместно) на новый сервер почти по инструкции за исключением того, что БД пришлось переносить на уровне файловой системы (после backup/restore УЦ категорически отказывался работать). После чего успешно прошли все тесты на соединение между ЦС и ЦР и между АРМ и ЦР.

Пришло время создать очередного пользователя. Из консоли АРМ он был создан, но при попытке создать запрос на сертификат получаем сообщение об ошибке:
Номер: 5
Источник: CRAdmin2
Описание: Invalid procedure call or argument

Версия ПО: 1.04.0686
Версия БД ЦР: 1.108 (Причем на вкладке БД свойствах ЦР версия ЦР обозначена как 1.04.0661).

Что стоит проверить\посмотреть?
 
Ответы:
19.06.2007 11:15:03Василий
Можно уточнить - эта ошибка происходит на каком этапе процедуры запроса на сертификат - после выбора шаблона, после (успешного?) формирования секретного ключа ?
19.06.2007 12:20:04Дмитрий
После выбора шаблона. Выбираю "Пользователь УЦ", нажимаю "Далее" и получаю ошибку.
19.06.2007 18:50:32Василий
С того компьютера, где АРМ вообще удаётся создать запрос на сертификат? Например, на странице http://www.cryptopro.ru/certsrv/certrqma.asp
(или на аналогичной странице Вашего ЦС)
20.06.2007 13:57:51Дмитрий
Видимо не удается: Невозможно выбрать криптопровайдер КриптоПРО. На выбор только пара провайдеров от MS (nMaxProvType поправил как FAQ описано, сервер перегружал).
Похоже проблема в этом?
20.06.2007 15:24:05Василий
а чему равна сейчас nMaxProvType ?

Правили на сервере ЦС, в папке %windir%\system32\certsrv\certsgcl.inc ?
20.06.2007 15:33:10Дмитрий
Вот та строчка из C:\WINDOWS\system32\certsrv\certsgcl.inc:
"Const nMaxProvType=99 ' should be >= the number of providers defined in wincrypt.h (~line 431)"
20.06.2007 15:53:38Дмитрий
Вот еще, в журнале ЦР есть событие от 6 и 8 июня "Запрос на сертификат не одобрен", CCertRequest::Submit No mapping between account names and security IDs was done. 0x80070534 (WIN32: 1332) (0x80070534).

Каких-либо более поздних записей нет и не возникает.
20.06.2007 16:46:20Дмитрий
Попробовали создать сертификат с еще одной машины, там установлен АРМ версии *.0661.
Дошло до просмотра запроса на сертификат, при нажатии кнопки далее получаем ошибку:
"Номер: -2147220983
Источник: ViewRequestMoveNext
Описание: Произошла ошибка во время принятия запроса на сертификат.
Оригинальная ошибка: Number=-2147023564 Source=CertificateAuthority.Request Description=CCertRequest::Submit No mapping between account names and security IDs was done. 0x80070534 (WIN32: 1332)"
Собственно ошибка в журнале, описанная в предыдущем сообщении, появилась при попытке создания сертификата именно на этой машине со старой версией АРМ. Может надо просто откатится на сервере до версии 661?
21.06.2007 17:51:13Василий
Версии везде лучше ставить одинаковые. Может, даже обновить всё (ЦС, ЦР и АРМ) до тех, что выложены на сайте (1.04.0705)
21.06.2007 17:52:38Дмитрий
Попробую, спасибо.
26.06.2007 11:53:39Дмитрий
Поставил свежую версию ЦС, ЦР и АРМ. Создается запрос на сертификат, но при попытке его одобрить по-прежнему:
Номер: -2147220983
Источник: ViewRequestMoveNext
Описание: Произошла ошибка во время принятия запроса на сертификат.
Оригинальная ошибка: Number=-2147023564 Source=CertificateAuthority.Request Description=CCertRequest::Submit No mapping between
account names and security IDs was done. 0x80070534 (WIN32: 1332)

Создается впечатление, что (WIN32: 1332) -- это что-то между ЦС и MSDE. К MSDE не удается подключится с консоли..
26.06.2007 12:21:44Дмитрий
Не, вру. Из консоли к MSDE подключаюсь без проблем.
26.06.2007 13:51:22Василий
Тогда по порядку.
На сервере ЦР запускаем "Параметры ЦР", Свойства "ЦР на веб-узле...":
1) вкладка Общие, "Протестировать соединение" - работает?
2) вкладка База данных, "Протестировать соединение" - работает?

Этот экземпляр MSDE был установлен автоматически во время установки ЦР?
А также - во время установки ЦР указывали ли какие-либо параметры командной строки (msiexec /i ...)?
26.06.2007 14:22:15Дмитрий
>1) вкладка Общие, "Протестировать соединение" - работает?

"Соединение с Центром сертификации установлено"


>2) вкладка База данных, "Протестировать соединение" - работает?

"Соединение с базой данных установлено"


>Этот экземпляр MSDE был установлен автоматически во время установки ЦР?

Да, был установлен автоматически при установке (восстановлении) сервера. После этого БД были восстановлены из архива, но база не запусказалась. Тогда были подложены файлы от прежней БД, после чего все успешно стартовало.


>А также - во время установки ЦР указывали ли какие-либо параметры командной строки (msiexec /i ...)?

Да, были указаны:
ca.msi: pidkey, companyname, capassword=
Ra.msi: pidkey, companyname, rapassword, rahostname
27.06.2007 10:47:59Василий
Я бы посоветовал:

1. Удалить "КриптоПро ЦР"
2. Удалить "КриптоПро ЦС"
3. Удалить MSDE.
4. Удалить MSDE-файлы ЦС,ЦР:
\Documents and Settings\All Users\Application Data\Crypto Pro\CA\Data\*
\Documents and Settings\All Users\Application Data\Crypto Pro\RA\Data\*
5. Скопировать MSDE-файлы ЦР с прежнего сервера в папку
\Documents and Settings\All Users\Application Data\Crypto Pro\RA\Data
6. Установить КриптоПро ЦС
7. Установить КриптоПро ЦР

Отличие (от прежней установки) в том, что при установке MSDE файлы БД ЦС создадутся новые с нужными правами и заполнятся при синхронизации с MS CA, а БД ЦР подключится с использованием файлов БД при установке ЦР.
27.06.2007 13:46:14Дмитрий
Выполнил все в том порядке, который вы описали и перезагрузил сервер. Попробовал одобрить "висящий" запрос, в результате по-прежнему возникает ошибка "No mapping between account names and security IDs was done. 0x80070534 (WIN32: 1332)"

На самом сервере в журнале событий:
The VB Application identified by the event source logged this Application CA: Thread ID: 3772 ,Logged:
Ошибка модуля удаленного доступа к КриптоПро УЦ ЦС:
Источник: CertificateAuthority.Request
Номер: 0x80070534 (-2147023564)
Описание: CCertRequest::Submit No mapping between account names and security IDs was done. 0x80070534 (WIN32: 1332)
от VBRuntime

А следом два одинаковых:
Soap error: Executing method AcceptFirstRequest failed.
от MSSOAP.
27.06.2007 15:33:05Василий
Тогда по частям:

В файле %windir%\system32\certsrv\certsgcl.inc измените значение константы nMaxProvType с 25 на 75

с этого же сервера через IE удаётся ли создать запрос на сертификат и установить сертификат:
http://localhost/certsrv/certrqma.asp
28.06.2007 9:39:01Дмитрий
nMaxProvType итак уже 99. Попробовал 75, но криптопровайдер так и не появляется; пробовал зайти с на http://localhost/certsrv/certrqma.asp.. Сейчас попробую переустановить CryptoPro CSP. Может проблема в нем...
28.06.2007 10:37:12Дмитрий
Ерунда какая-то. Делал уже и repair в control panel и обновил до новой версии CSP, а криптопровайдер так и не появился.
28.06.2007 12:55:02Василий
Сообщите, пож. текущее содержимое ветки реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults
28.06.2007 12:58:38Дмитрий
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider]
"Image Path"="C:\\Program Files\\Crypto Pro\\CSP\\cpcsp.dll"
"Type"=dword:0000004b
"CP Module Name"="cpcspr.dll"
"CP Module Entry Point"="DllStartServer"
"SigInFile"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2001 KC2 CSP]
"Image Path"="C:\\Program Files\\Crypto Pro\\CSP\\cpcsp.dll"
"Type"=dword:0000004b
"SigInFile"=dword:00000001
"CP Module Name"="cpcspr.dll"
"CP Module Entry Point"="DllStartServer"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-94 Cryptographic Service Provider]
"Image Path"="C:\\Program Files\\Crypto Pro\\CSP\\cpcsp.dll"
"Type"=dword:00000047
"CP Module Name"="cpcspr.dll"
"CP Module Entry Point"="DllStartServer"
"SigInFile"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-94 KC2 CSP]
"CP Module Entry Point"="DllStartServer"
"Image Path"="C:\\Program Files\\Crypto Pro\\CSP\\cpcsp.dll"
"Type"=dword:00000047
"SigInFile"=dword:00000001
"CP Module Name"="cpcspr.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Gemplus GemSAFE Card CSP v1.0]
"Image Path"="gpkcsp.dll"
"Type"=dword:00000001
"SigInFile"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Infineon SICRYPT Base Smart Card CSP]
"Image Path"="SccBase.dll"
"Type"=dword:00000001
"SigInFile"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Microsoft Base Cryptographic Provider v1.0]
"SigInFile"=dword:00000000
"Type"=dword:00000001
"Image Path"="rsaenh.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Microsoft Base DSS and Diffie-Hellman Cryptographic Provider]
"Image Path"="dssenh.dll"
"Type"=dword:0000000d
"SigInFile"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Microsoft Base DSS Cryptographic Provider]
"Image Path"="dssenh.dll"
"Type"=dword:00000003
"SigInFile"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Microsoft DH SChannel Cryptographic Provider]
"SigInFile"=dword:00000000
"Type"=dword:00000012
"Image Path"="dssenh.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Microsoft Enhanced Cryptographic Provider v1.0]
"Image Path"="rsaenh.dll"
"Type"=dword:00000001
"SigInFile"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider]
"Image Path"="dssenh.dll"
"Type"=dword:0000000d
"SigInFile"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Microsoft Enhanced RSA and AES Cryptographic Provider]
"Image Path"="rsaenh.dll"
"Type"=dword:00000018
"SigInFile"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Microsoft RSA SChannel Cryptographic Provider]
"SigInFile"=dword:00000000
"Type"=dword:0000000c
"Image Path"="rsaenh.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Microsoft Strong Cryptographic Provider]
"Image Path"="rsaenh.dll"
"Type"=dword:00000001
"SigInFile"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Schlumberger Cryptographic Service Provider]
"Image Path"="slbcsp.dll"
"Type"=dword:00000001
"SigInFile"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types\Type 001]
"Name"="Microsoft Strong Cryptographic Provider"
"TypeName"="RSA Full (Signature and Key Exchange)"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types\Type 003]
"Name"="Microsoft Base DSS Cryptographic Provider"
"TypeName"="DSS Signature"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types\Type 012]
"Name"="Microsoft RSA SChannel Cryptographic Provider"
"TypeName"="RSA SChannel"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types\Type 013]
"Name"="Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider"
"TypeName"="DSS Signature with Diffie-Hellman Key Exchange"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types\Type 018]
"Name"="Microsoft DH SChannel Cryptographic Provider"
"TypeName"="Diffie-Hellman SChannel"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types\Type 024]
"Name"="Microsoft Enhanced RSA and AES Cryptographic Provider"
"TypeName"="RSA Full and AES"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types\Type 071]
"TypeName"="GOST R 34.10-94 Signature with Diffie-Hellman Key Exchange"
@=""
"Name"="Crypto-Pro GOST R 34.10-94 Cryptographic Service Provider"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types\Type 075]
"TypeName"="GOST R 34.10-2001 Signature with Diffie-Hellman Key Exchange"
"Name"="Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider"

28.06.2007 13:27:12Василий
Выглядит прилично.
И что, нет названия КриптоПро CSP на странице веб-интерфейса?
А страницу в IE обновляли?

Если есть возможность - зайдите с жтой машины на:
http://www.cryptopro.ru/certsrv/certrqma.asp
28.06.2007 14:03:28Дмитрий
Да, конечно обновлял страницу даже по ctrl-f5.
Ваша страница загрузилась (Microsoft Службы сертификации -- Test Center CRYPTO-PRO), и ваш криптопровайдер там виден (вроде стоит по умолчанию).

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

Попробовал поставить anonymous access на виртуальный каталог certsrv в оснастке управления IIS, теперь страница прогружается, но выдается сообщение об ошибке:
No certificate template could be found. You don't have permission to request a certificate from this CA, or an error occurred while accessing the Active Directory.

Нажимаю "ОК" и получаю страницу с неактивными серыми полями. В списке Certificate Template стоит "(no templates found).
28.06.2007 16:14:09Василий
Можно уточнить режим установки MS CA на этом сервере - "Stand Alone" (Изолированный) или "Enterprise" (ЦС предприятия)?
Очень похоже на второе, что противоречит рекомендациям, изложенным в нашей документации на УЦ.
28.06.2007 16:37:53Дмитрий
Василий, да, это Enterprise root сервер в составе домена. У вас не рекомендуется такая схема по причине безопасности. У нас же сейчас стоит проблема работоспособности.
29.06.2007 11:22:44Василий
Так никто и не обещал работоспособность КриптоПро УЦ на MS Enterprise CA.
Для КриптоПро УЦ нужен Stand Alone CA.
29.06.2007 11:25:56Дмитрий
Хорошо. Тогда вопрос: возможно ли восстановить бывший в составе AD ЦС в виде standalone?
29.06.2007 11:34:45Василий
Можно уточнить постановку задачи:
1) бывший сервер сервер ЦС:
- входил ли в домен
- MS CA был Enterprise или Stand Alone
- какая ОС, сервиспак, язык ОС

2) новый сервер ЦС:
- входит ли в домен (если да, то это тот же самый домен?)
- какая ОС, сервиспак, язык ОС

3) отличаются ли (на старом и новом сервере ЦС):
- значения %windir%,
- версии и сборки КриптоПро CSP.
29.06.2007 12:00:42Дмитрий
Можно уточнить постановку задачи:
1) бывший сервер сервер ЦС:
Входил в домен
- входил ли в домен
- MS CA был Enterprise
- Windows 2003 standard english SP1

2) новый сервер ЦС:
Хочется просто придти к конфигурации, соответствуемой рекомендуемой, следовательно в домен не включаем. А если и будет входить в домен, то в тот же самый.
Данные по ОС -- те же самые

3) отличаются ли (на старом и новом сервере ЦС):
Нет, отличаться не будут.
29.06.2007 12:23:03Василий
Ясно.
Вообще-то, на практике никто так никогда не делал...
Попробовать можно.

На новом сервере удаляете "КриптоПро ЦС", потом MS CA.
Удалите, если остались, папки (с содержимым) с системного диска:
\windows\system32\certlog
\CAConfig

Далее ставите MS CA в режиме Stand Alone с использованием того же ключа и сертификата (если делали смену ключа или сертификата ЦС на старом ЦС - то нужно будет несколько ключей).
В результате будет новый изолированный CA, работающий на тех же ключах.
Далее надо будет ему подсунуть базу данных сертификатов от старого MS CA.
Для этого:
1) остановите MS CA на новом и на старом сервере.
2) на новом сервере создайте резервную копию файлов из папки %windir%\system32\certlog
3) скопируйте файлы из этой папки со старого сервера на новый (с перезаписью)
4) запустите MS CA на новом сервере,
если он запустится успешно - посмотрите в оснастке управления MS CA - все ли сертификаты подхватились (выданные, отозванные)
5) если всё ок, то можно ставить "КриптоПро ЦС"
07.08.2007 20:38:03Дмитрий
Спасибо, УЦ заработал после применения последнего "рецепта" :-)