Статус: Новичок
Группы: Участники
Зарегистрирован: 11.12.2018(UTC) Сообщений: 2
|
Здравствуйте, я на своем сайте делаю запрос на получение сертификата с помощью cadesplugin api. Плагин установлен, страница выдает "Этот сайт пытается выполнить операцию с ключами..", я даю разрешение. Дальше - в Firefox и Chrome запрос в виде PKCS#10 выводится в консоль и заданный <textarea>, но CSP не вызывается, окно где нужно выбрать носитель для сохранения и двигать мышкой для генерации последовательности не появляется. В IE те же функции, только в синхронном варианте, вызывают CSP и сертификат успешно генерируется. В чем может быть дело? Важно ли что https у меня на сайте тестовый, самоподписанный?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
Здравствуйте. Уточните используемые версии: 1) КриптоПРО CSP (версия продукта с вкладки Общие) 2) КриптоПРО Browser plug-in 3) Актуальность версии cadesplugin api и других зависимостей. Проверьте поведение указанных браузеров на этой странице. Для появления диалога выбора, где сохранять контейнер - в системе должно быть доступно более одного типа считывателя\носителя (реестр\флешка\логический диск, директория - в новой версии CSP). Цитата: в виде PKCS#10 выводится в консоль и заданный <textarea>, но CSP не вызывается
и Цитата: вызывают CSP и сертификат успешно генерируется.
Что означает утверждение в случае с IE? Вы генерируете запрос, далее его отправляете в УЦ. В обоих вариантах - генерируется запрос (PKCS#10), верно? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 11.12.2018(UTC) Сообщений: 2
|
1) КриптоПРО CSP 4.0.9958 2) КриптоПРО Browser plug-in 2.0.13292.0 Расширения в Firefox и Chrome 1.2.7 3)Прямые ссылки <script language="javascript" src="https://www.cryptopro.ru/sites/default/files/products/cades/cadesplugin_api.js"></script> <script language="javascript" src="https://www.cryptopro.ru/sites/default/files/products/cades/es6-promise.min.js"></script> <script language="javascript" src="https://www.cryptopro.ru/sites/default/files/products/cades/demopage/ie_eventlistner_polyfill.js"></script> <script language="javascript" src="https://www.cryptopro.ru/sites/default/files/products/cades/demopage/Code.js"></script> + скрипты со страницы https://www.cryptopro.ru/certsrv/certrqma.asp сохранены локально. Да, и на этой странице все браузеры правильно работают и вызывают CSP, запрос создается. Цитата:"вызывают CSP и сертификат успешно генерируется." Что означает утверждение в случае с IE? Под этим я имею ввиду что появляется окно с перемещением мыши для генерации последовательности, после этого сертификат сохраняется в реестре. Цитата:В обоих вариантах - генерируется запрос (PKCS#10), верно? Да, функции одинаковые, только для IE синхронный вариант, для остальных асинхронный с Promise. Вот обе функции если нужно: Код:function request_ie() {
var PKey = cadesplugin.CreateObject("X509Enrollment.CX509PrivateKey");
PKey.ProviderName = "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider";
PKey.ProviderType = 75;
PKey.KeySpec = 1;
var CertificateRequestPkcs10 = cadesplugin.CreateObject("X509Enrollment.CX509CertificateRequestPkcs10");
CertificateRequestPkcs10.InitializeFromPrivateKey(0x1, PKey, "");
var DistinguishedName = cadesplugin.CreateObject("X509Enrollment.CX500DistinguishedName");
DistinguishedName.Encode("CN=\"TestName\";");
CertificateRequestPkcs10.Subject = DistinguishedName;
var KeyUsageExtension = cadesplugin.CreateObject("X509Enrollment.CX509ExtensionKeyUsage");
var CERT_DATA_ENCIPHERMENT_KEY_USAGE = 0x10;
var CERT_KEY_ENCIPHERMENT_KEY_USAGE = 0x20;
var CERT_DIGITAL_SIGNATURE_KEY_USAGE = 0x80;
var CERT_NON_REPUDIATION_KEY_USAGE = 0x40;
KeyUsageExtension.InitializeEncode(
CERT_KEY_ENCIPHERMENT_KEY_USAGE |
CERT_DATA_ENCIPHERMENT_KEY_USAGE |
CERT_DIGITAL_SIGNATURE_KEY_USAGE |
CERT_NON_REPUDIATION_KEY_USAGE);
CertificateRequestPkcs10.X509Extensions.Add(KeyUsageExtension);
var Enroll = cadesplugin.CreateObject("X509Enrollment.CX509Enrollment");
Enroll.InitializeFromRequest(CertificateRequestPkcs10);
console.log(CertificateRequestPkcs10);
sCertificate = Enroll.CreateRequest(1);
var request_pkcs10 = document.getElementById('request');
request_pkcs10.innerHTML = sCertificate;
}
function request_async() {
return new Promise(function (resolve, reject) {
cadesplugin.async_spawn(function* (args) {
try {
var PKey = yield cadesplugin.CreateObjectAsync("X509Enrollment.CX509PrivateKey");
PKey.ProviderName = "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider";
PKey.ProviderType = 75;
PKey.KeySpec = 1;
try {
var CertificateRequestPkcs10 = yield cadesplugin.CreateObjectAsync("X509Enrollment.CX509CertificateRequestPkcs10");
} catch (e) {
alert('Failed to create X509Enrollment.CX509CertificateRequestPkcs10: ' + GetErrorMessage(e));
return;
}
yield CertificateRequestPkcs10.InitializeFromPrivateKey(0x1, PKey, "");
try {
var DistinguishedName = yield cadesplugin.CreateObjectAsync("X509Enrollment.CX500DistinguishedName");
} catch (e) {
alert('Failed to create X509Enrollment.CX500DistinguishedName: ' + GetErrorMessage(e));
return;
}
var DistinguishedName_string = document.getElementById('locNameAlign').value;
console.log(DistinguishedName_string);
yield DistinguishedName.Encode("CN=\"TestName\";");
yield CertificateRequestPkcs10.propset_Subject(DistinguishedName);
try {
var KeyUsageExtension = yield cadesplugin.CreateObjectAsync("X509Enrollment.CX509ExtensionKeyUsage");
} catch (e) {
alert('Failed to create X509Enrollment.CX509ExtensionKeyUsage: ' + GetErrorMessage(e));
return;
}
var CERT_DATA_ENCIPHERMENT_KEY_USAGE = 0x10;
var CERT_KEY_ENCIPHERMENT_KEY_USAGE = 0x20;
var CERT_DIGITAL_SIGNATURE_KEY_USAGE = 0x80;
var CERT_NON_REPUDIATION_KEY_USAGE = 0x40;
yield KeyUsageExtension.InitializeEncode(
CERT_KEY_ENCIPHERMENT_KEY_USAGE |
CERT_DATA_ENCIPHERMENT_KEY_USAGE |
CERT_DIGITAL_SIGNATURE_KEY_USAGE |
CERT_NON_REPUDIATION_KEY_USAGE);
X509Extensions = yield CertificateRequestPkcs10.X509Extensions;
yield X509Extensions.Add(KeyUsageExtension);
try {
var Enroll = yield cadesplugin.CreateObjectAsync("X509Enrollment.CX509Enrollment");
} catch (e) {
alert('Failed to create X509Enrollment.CX509ExtensionKeyUsage: ' + GetErrorMessage(e));
return;
}
yield Enroll.InitializeFromRequest(CertificateRequestPkcs10);
var sCertificate = yield Enroll.CreateRequest(1);
console.log(sCertificate);
var request_pkcs10 = document.getElementById('request');
request_pkcs10.innerHTML = sCertificate;
} catch (e) {
// console.log("Error: " + cadesplugin.getLastError(err));
}
}, resolve, reject);
});
}
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close