тип сертификата не имеет параметра ссылающегося на закрытый ключ
Сертификат не имеет связи с закрытым ключом
При возникновении ошибки «Сертификат не имеет связи с закрытым ключом» необходимо выполнить проверку сертификата электронной подписи.
Алгоритм проверки электронной подписи:
В программном продукте 1С необходимо
1. перейти в раздел «Администрирование»
2. «Обмен электронными документами»
3. «Настройка электронной подписи и шифрования»
4. На вкладке «Сертификаты» открыть используемый сертификат
5. Нажать на кнопку «Проверить»
6. Ввести пароль закрытой части ключа и нажать «Проверить»
Если в ходе проверки напротив пункта «Подписание данных» возникнет сигнализирующий об ошибке красный символ, на него необходимо нажать для открытия технической информации об ошибке.
Если в технической информации об ошибке указано » Сертификат не имеет связи с закрытым ключом » это обозначает, что открытая часть ключа не может сослаться на контейнер сертификата. Основной причиной возникновения данной ошибки является некорректный перенос сертификата с одного рабочего места на другое.
Решение: связать сертификат с закрытом ключом.
Д ля этого необходимо:
1. Сохранить сертификат, указав директорию компьютера, где его можно будет найти. Сделать это можно из программы 1С открыв сертификат в настройках электронной подписи и шифрования и нажать кнопку «Сохранить в файл» и указать директорию операционной системы для сохранения файла.
2. Запустить криптопровайдер и выполнить установку сертификата.
В окне VIPNet CSP нажать «Установить сертификат»
В открывшемся окне необходимо выбрать директорию, куда был сохранен сертификат, выбрать сохраненный ранее сертификат и нажать «Открыть».
В открывшемся мастере установки сертификатов, нажать «Далее»
При выборе хранилища необходимо выбрать «Текущий пользователь» и нажать «Далее»
В следующем окне необходимо выбрать «Найти контейнер с закрытым ключом» и нажать «Далее».
Контейнер с закрытым ключом оперделиться автоматический. В том случае, когда контейнер не определился необходимо нажать «Обзор» и выбрать контейнер вручную, а затем нажать «Ок» и завершить установку.
В открывшемся окне криптопровайдера перейти на вкладку «Сервис» и нажать «Установить личный сертификат».
В следующем окне необходимо выбрать директорию расположения файла сертификата нажав кнопку «Обзор»
Указать директорию, в которую ранее был сохранён сертификат и нажать «Открыть».
В следующем окне мастера установки сертификатов поставить галочку «Найти контейнер автоматический». Контейнер должен определиться в окне ниже. Если автоматический не удалось найти контейнер необходимо нажать «Обзор» и самостоятельно указать контейнер. Затем нажать Далее.
Затем необходимо поставить галочку «Установить сертификат (цепочку сертификатов) в контейнер», нажать «Далее» и завершить установку.
После установки связи между сертификатом и закрытой частью ключа ошибка не воспроизводится.
Сертификат связан с модулем криптографии «Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider» с типом 75
У данной ошибки имеется два сценария воспроизведения:
1. При подписании электронных документов.
При возникновении ошибки «Сертификат, связанный с закрытым ключом, указывает на модуль криптографии, отличный от текущего. Сертификат связан с модулем криптографии «Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider» с типом 75..» необходимо выполнить проверку сертификата электронной подписи.
Алгоритм проверки электронной подписи:
В программном продукте 1С необходимо
— На вкладке «Сертификаты» открыть используемый сертификат.
— Убедиться, что в поле программа установлено значение «КриптоПро CSP (ГОСТ 2012)«.
— Нажать на кнопку «Проверить«.
— Ввести пароль закрытой части ключа и нажать «Проверить«.
Если в ходе проверки напротив пункта «Подписание данных» возникнет сигнализирующий об ошибке красный символ, на него необходимо нажать для открытия технической информации об ошибке.
Если в технической информации об ошибке указано «Сертификат, связанный с закрытым ключом, указывает на модуль криптографии, отличный от текущего. Сертификат связан с модулем криптографии «Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider» с типом 75..» необходимо перепривязать сертификат к контейнеру закрытого ключа (см. ниже в разделе «Решение»).
2. При добавлении нового сертификата в настройки электронной подписи и шифрования.
В открывшемся окне необходимо выбрать актуальный сертификат и нажать «Далее».
В следующем окне добавления сертификата необходимо ввести пароль и нажать «Добавить».
Далее возможно возникновение ошибки «Сертификат, связанный с закрытым ключом, указывает на модуль криптографии, отличный от текущего. Сертификат связан с модулем криптографии «Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider» с типом 75.«.
В случае её возникновения в предыдущем окне добавления сертификата необходимо нажать на кнопку «Показать данные сертификата, которые сохраняются в файле». Данная кнопка визуализирована в виде иконки сертификата.
И в открывшемся окне нажать «Сохранить в файл. » и выполнить сохранение сертификата в любую доступную директорию компьютера и перейти к решению (см. ниже).
Для устранения ошибки «Сертификат, связанный с закрытым ключом, указывает на модуль криптографии, отличный от текущего. Сертификат связан с модулем криптографии «Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider» с типом 75.» необходимо заново связать сертификат с закрытым ключом.
В открывшемся окне криптопровайдера перейти на вкладку «Сервис» и нажать «Установить личный сертификат».
В следующем окне необходимо выбрать директорию расположения файла сертификата нажав кнопку «Обзор».
Указать директорию, в которую ранее был сохранён сертификат и нажать «Открыть».
В следующем окне мастера установки сертификатов поставить галочку «Найти контейнер автоматически». Контейнер должен определиться в окне ниже. Если найти контейнер автоматически не удалось, необходимо нажать «Обзор» и самостоятельно указать контейнер. Затем необходимо нажать «Далее».
После необходимо поставить галочку «Установить сертификат (цепочку сертификатов) в контейнер”. Затем нажать «Далее» и завершить установку.
После установки связи между сертификатом и закрытой частью ключа ошибка исправится.
Тип сертификата не имеет параметра ссылающегося на закрытый ключ
Может, Вам проще использовать готовое решение, на выбор:
http://www.cryptopro.ru/cryptopro/products/cryptcp/default.htm
http://www.cryptopro.ru/cryptopro/products/crypto-arm/default.htm
23.05.2007 17:36:49 | Александр |
Но получить сертификат с закрытым ключем на вашем сайте не возможно!
Использование стороннего (перчисляемого вами ПО) невозможно, по налагаемым на систему требованиям!
Как мне ассоциировать имеющийся ключ и сертификат?
23.05.2007 19:46:09 | Иван |
24.05.2007 11:42:57 | Василий |
http://www.cryptopro.ru/certsrv/certrqma.asp
при создании запроса на машине клиента делается закрытый ключ. Готовый сертификат ставится в хранилище «Личные» с привязкой к ключу (при нажатии на ссылку на следующей странице).
24.05.2007 12:51:09 | Александр |
Вы наверное решили писать на тему «как отвадить», ПОВТОРЯЮ!
ВАШ САЙТ НЕ ВЫДАЕТ СЕРТИФИКАТОВ С ЗАКРЫТЫМ КЛЮЧОМ.
Вот как-то так я делал это:
//—————————————————————————
// получим дескриптор провайдера (и секретного ключа) для подписи
//HCRYPTPROV hProv;
DWORD dwKeySpec;
BOOL fCallerFreeProv;
pCertContext = GetCertContext( asGUID );
err = CryptFindCertificateKeyProvInfo( pCertContext, 0, NULL);
//Получаем UNICODE-имя провайдера
provInfo.pwszProvName = WideString( crtmgr_win->tCrypto.asProviderName ).c_bstr();
//Получаем тип провайдера:
provInfo.dwProvType = 2;
provInfo.dwFlags = 0;
provInfo.cProvParam = 0;
provInfo.rgProvParam = 0;
provInfo.dwKeySpec = AT_SIGNATURE;
CertSetCertificateContextProperty( pCertContext,
CERT_KEY_PROV_INFO_PROP_ID,
0,
&provInfo );
>
24.05.2007 14:01:22 | Александр |
Или почтовый адрес.
Мне требуется подписать данные, я делаю так:
(прошу прощения, мне приходится переводить один язык программирования в VBA (как более близкий), может ошибусь в чем то)
Dim CertStore as Capicom.Store
Dim SertForSign as Capicom.Certificate
Dim DataForSign as Capicom.SignedData
Dim Signer as Capicom.Signer
CertStore = New Capicom.Store
CertStore.Open
SertForSign = CertStore.Certificates(1)
DataForSign = New Capicom.SignedData
Signer = New Capicom.Signer
Data = Что то что подписываем
Signer.Certificate = SertForSign
DataForSign.Content = Data
SignedData = DataForSign.Sign(Signer,False,0)
24.05.2007 14:22:49 | Александр |
Вот вам ответы на ваши вопросы:
1) Windows XP, sp2, RAM 1Гб, НДД 150 Гб
2) IE 7 (7.0.5730.11)
3) 3.0, КС1 3.0.3300.2
4) Что заполняю:
— Имя
— Организация
— Подразделение
— Город
— Страна
Тип сертификата:Сертификат подписи кода
Параметры ключа: Создать новый набор ключей
CSP: Crypto-Pro GOST К 34.10-2001 Cryptographic Service Provider
Использование ключей: Оба
Размер ключа:512
Автоматическое имя контейнера
PKCS 10
GOST R 34.11-94
что заполняете и что выбираете на странице http://www.cryptopro.ru/certsrv/certrqma.asp
24.05.2007 14:24:31 | Иван |
Я создавал свою программу в отрыве от хранилищ сертификатов и т.п. Я использую свою внутреннюю базу сертификатов, запросы на которые и сами сертификаты получаются по другим каналам, нежели Web. Поэтому у меня возникла необходимость привязывать сертификат к закр. ключу. Для этого необходимо всего лишь знать точное имя крипто-контейнера и выполнить часть кода, описанную выше.
.
const BYTE* MessageArray[] =
DWORD MessageSizeArray[1];
MessageSizeArray[0] = iBufferSize;
SigParams.cbSize = sizeof(CRYPT_SIGN_MESSAGE_PARA);
SigParams.dwMsgEncodingType = PKCS_7_ASN_ENCODING | X509_ASN_ENCODING;
SigParams.pSigningCert = pCertContext;
// szOID_OIWSEC_sha1RSASign
// szOID_OIWSEC_sha1
// szOID_OIWSEC_sha
//
if( iSignMode == 0 )
SigParams.HashAlgorithm.pszObjId = szOID_CP_GOST_R3411_R3410;
if( iSignMode == 1 )
SigParams.HashAlgorithm.pszObjId = szOID_OIWSEC_sha1RSASign;
SigParams.HashAlgorithm.Parameters.cbData = NULL;
SigParams.cMsgCert = 0;
SigParams.rgpMsgCert = NULL;
SigParams.cAuthAttr = 0;
SigParams.dwInnerContentType = 0;
SigParams.cMsgCrl = 0;
SigParams.cUnauthAttr = 0;
SigParams.dwFlags = 0;
SigParams.pvHashAuxInfo = NULL;
SigParams.rgAuthAttr = NULL;
//———————————————————————
// With two calls to CryptSignMessage, sign the message.
// First, get the size of the output signed BLOB.
Я генерировал неоднократно сертификаты через сервер КриптоПро. Последние даже через Windows Mobile для установки SSL/TLS соединений с двойной аутентификацией.
24.05.2007 16:17:20 | Александр |
CertForSign = Store.Certificates.Item(1) Привел, как показатель того, как идет обращение к сертификату.
Естественно подписывающий сертификат не первый и не единственный в системе.
В системе зарегистрированы сертификаты:
МелкоСофта (провайдер мелкософт) Работает,
КриптоПро (провайдер мелкософт) Работает,
КриптоПро (Провайдер крипто про) НЕ РАБОТАЕТ,
КриптоПро (Провайдер крипто про) НЕ РАБОТАЕТ
24.05.2007 16:33:50 | Kirill Sobolev |
24.05.2007 19:04:51 | Василий |
Или нет?
Можно уточнить, какие вообще CSP установлены?
Если не затруднит, скиньте содержимое разделов:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider
Вы можете удалить Крипто Ком и посмотреть, как без него?
Неудачных запросов с таким названием организации нет.
Сертификат связан с модулем криптографии «Infotecs Cryptographic Service Provider» с типом 2
У данной ошибки имеется два сценария воспроизведения:
1. При подписании электронных документов.
При возникновении ошибки «Сертификат, связанный с закрытым ключом, указывает на модуль криптографии, отличный от текущего. Сертификат связан с модулем криптографии «Infotecs Cryptographic Service Provider» с типом 2.» необходимо выполнить проверку сертификата электронной подписи.
Алгоритм проверки электронной подписи:
— На вкладке «Сертификаты» открыть используемый сертификат.
— Убедиться, что в поле программа установлено значение «ViPNet CSP (ГОСТ 2012)«.
— Нажать на кнопку «Проверить«.
— Ввести пароль закрытой части ключа и нажать «Проверить«.
Если в ходе проверки напротив пункта «Подписание данных» возникнет сигнализирующий об ошибке красный символ, на него необходимо нажать для открытия технической информации об ошибке.
Если в технической информации об ошибке указано «Сертификат, связанный с закрытым ключом, указывает на модуль криптографии, отличный от текущего. Сертификат связан с модулем криптографии «Infotecs Cryptographic Service Provider» с типом 2.», необходимо повторно связать сертификат с контейнером. Как связать сертификат с контейнером указано ниже.
2. При добавлении нового сертификата в настройки электронной подписи и шифрования.
В открывшемся окне необходимо выбрать актуальный сертификат и нажать «Далее
В следующем окне необходимо ввести пароль и нажать «Добавить».
Далее возможно возникновение ошибки «Сертификат, связанный с закрытым ключом, указывает на модуль криптографии, отличный от текущего. Сертификат связан с модулем криптографии «Infotecs Cryptographic Service Provider» с типом 2.»
В случае её возникновения в предыдущем окне добавления сертификата необходимо нажать на кнопку «Показать данные сертификата, которые сохраняются в файле». Данная кнопка визуализирована в виде иконки сертификата.
В открывшемся окне нажать «Сохранить в файл. » и выполнить сохранение сертификата в любую доступную директорию компьютера и перейти к решению (см. ниже)
Для устранения ошибки «Сертификат, связанный с закрытым ключом, указывает на модуль криптографии, отличный от текущего. Сертификат связан с модулем криптографии «Infotecs Cryptographic Service Provider» с типом 2.» необходимо связать сертификат с закрытым ключом.
В окне ViPNet CSP нажать «Установить сертификат»
В открывшемся окне необходимо выбрать директорию, куда был сохранен сертификат, выбрать сохраненный ранее сертификат и нажать «Открыть».
В мастере установки сертификатов нажать «Далее»
При выборе хранилища необходимо выбрать «Текущий пользователь» и нажать «Далее»
В следующем окне необходимо выбрать «Найти контейнер с закрытым ключом» и нажать «Далее».
Контейнер с закрытым ключом определится автоматический. В том случае, когда контейнер не определился необходимо нажать «Обзор» и выбрать контейнер вручную, а затем нажать «ОК» и завершить установку.
После установки связи между сертификатом и закрытой частью ключа ошибка исправится.
- тип переменных для параметра цикла for
- тип телосложения по параметрам