malikzh / ncanode Goto Github PK
View Code? Open in Web Editor NEW⭐ Приложение-сервер для работы с Электронно Цифровой Подписью (ЭЦП) РК
Home Page: http://ncanode.kz
License: MIT License
⭐ Приложение-сервер для работы с Электронно Цифровой Подписью (ЭЦП) РК
Home Page: http://ncanode.kz
License: MIT License
Здравствуйте.
Запрос
{
"version": "2.0",
"method": "node.info"
}
Ответ
{
"dateTime": "2020-12-06 07:51:22",
"timezone": "Etc/UTC",
"kalkanVersion": null,
"name": "NCANode v2.0.1",
"message": "",
"version": "2.0.1",
"status": 0
}
Собирал с kalkancrypt-0.6.1.jar через mvn clean package. Для сборки отредактировал pom.xml, подставил 0.6.1 вместо 0.6
Что я сделал не так?)
Почему неудачно, из за того что Результат проверки TSP отсутствует?
Информация об электронном документе
Добрый день!
Скачал SDK, но в нем только kalkancrypt-0.6.1.jar, версии 0.6 нет в комплекте.
Я исправил в pom.xml таким образом:
<dependencies>
<dependency>
<groupId>pki.gov.kz</groupId>
<artifactId>kalkancrypt</artifactId>
<version>0.6.1</version>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<executions>
<execution>
<id>install-external</id>
<phase>clean</phase>
<configuration>
<file>${basedir}/lib/kalkancrypt-0.6.1.jar</file>
<repositoryLayout>default</repositoryLayout>
<groupId>pki.gov.kz</groupId>
<artifactId>kalkancrypt</artifactId>
<version>0.6.1</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
<goals>
<goal>install-file</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
Собрал новый docker-образ.
При вызове метода node.info (API v2) я получаю "kalkanVersion": null
{
"dateTime": "2021-07-09 08:34:22",
"timezone": "GMT",
"kalkanVersion": null,
"name": "NCANode v2.3.0",
"message": "",
"version": "2.3.0",
"status": 0
}
Как исправить ошибку?
Спасибо!
Еще в файле pom.xml исправил 2.3.0 было 2.0.0
Подставил библиотеки из комплекта разработчика (SDK) в директорию /lib.
переименовал файл Dockerfile.build на Dockerfile и запустил команду
docker build -t malikzh/ncanode .
после запустил команду
docker run -ti -p 14579:14579 malikzh/ncanode
и при запросе
{
"version": "2.0",
"method": "node.info"
}
возвращает
{
"dateTime": "2020-10-10 07:04:56",
"timezone": "GMT",
"kalkanVersion": null,
"name": "NCANode v2.0.1",
"message": "",
"version": "2.0.1",
"status": 0
}
где я делаю не так? спасибо
Спасибо.
Еще вопрос.
Почему при использовании cms.sign и последующей проверке, получается это:
Это при использовании v2. Какой параметр передавать нужно, для создания метки TSP?
Originally posted by @anaumov93 in #66 (comment)
Как можно cms подписать с TSP-метки?
В связи с дублированием функционала, из метода CMS.sign будет удалён параметр tspInCms.
Теперь подпись TSP будет добавляться в CMS по умолчанию если указан флаг createTsp
.
Кому необходим именно TSP, те смогут воспользоваться методом TSP.sign
Вызов метода TSP SIGN для получения метки времени от этой base64 строки вызывает 500-ую ошибку в вашем сервисе.
Эта ошибка возникает в обеих версиях NCANode-а. Также заметили, что не только для этого файла возникает эта проблема, периодически клиенты замечают такую ошибку и для других файлов. Мы уже поиграли с комбинациями, такое ощущение, что он ругается на какие-то символы в самой строке RAW.
Необходимо настроить CI систему для быстрой сборки
Добрый день!
Есть ли возможность развернуть сервис с использованием https?
Да, наконец-то это случится в этом году ;)
Необходимо реализовать метод:
CMS.extract
который будет извлекать документ из CMS-файла. Метод не будет принимать никаких параметров.
Добрый день, имеется подпись сделанная в прошлом году.
Прошло более года, подписант уже перевыпустил сертификаты.
Запрос на проверку подписи:
'version' => '2.0',
'method' => 'cms.verify',
'params' => [
'cms' => '....',
'verifyOcsp' => false,
'verifyCrl' => false
]
Возвращает такой результат: Api error: certificate expired on 20200207084020GMT+00:00
Как я понял - скорее всего не используется проверка TSP метки?
Добрый день!
Я пишу Go клиента для API NCANode. Все методы практически покрыты, кроме RAW.verify
. С последним есть сложности, так как получаю Api error: Cannot find certificate issuer
от API. Проверяя PKCS12.info
заметил что для всех сертификатов от комплекта разработчика от НУЦ (получил 02.09.2020) цепочка в ответе (chain
) всегда пустая, что и проводит к ошибке выше.
Вопрос: связано ли это как-то с версией библиотеки kalkancrypt? На руках последняя kalkancrypt-0.6.1.jar
.
Или вопрос к НУЦ и комплекту?
Подскажите пжл-та с чего начать проверку.
Также надо будет для CRL добавить поле revocationTime
для запроса CRL.
Для передачи больших файлов base64 никуда не годится, т.к. увеличивает размер файла на треть, мною было принято решение о реализации бинарного протокола NBP ( NCANode Binary Protocol ). Спецификация протокола будет позже
Это надо сделать, чтобы смотрелось круто B-)
При вызове функции cms.verify получаю ошибку
{ "message": "Api error: null", "status": 5 }
В postman то же самое.
Running in "http" mode... Starting HTTP server on 127.0.0.1:14579... java.security.cert.CRLException: Incomplete BER/DER data at sun.security.provider.X509Factory.engineGenerateCRL(Unknown Source) at java.security.cert.CertificateFactory.generateCRL(Unknown Source) at kz.ncanode.pki.CrlServiceProvider.verify(CrlServiceProvider.java:51) at kz.ncanode.pki.PkiServiceProvider.certInfo(PkiServiceProvider.java:174) at kz.ncanode.api.version.v20.controllers.CmsController.verify(CmsController.java:201) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at kz.ncanode.api.core.ApiController.invokeMethod(ApiController.java:56) at kz.ncanode.api.core.ApiController.callMethod(ApiController.java:38) at kz.ncanode.api.version.v20.ApiVersion20.process(ApiVersion20.java:97) at kz.ncanode.api.ApiServiceProvider.process(ApiServiceProvider.java:96) at kz.ncanode.interaction.interactors.HttpInteractor$HttpApiHandler.handle(HttpInteractor.java:95) at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source) at sun.net.httpserver.AuthFilter.doFilter(Unknown Source) at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source) at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(Unknown Source) at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source) at sun.net.httpserver.ServerImpl$Exchange.run(Unknown Source) at sun.net.httpserver.ServerImpl$DefaultExecutor.execute(Unknown Source) at sun.net.httpserver.ServerImpl$Dispatcher.handle(Unknown Source) at sun.net.httpserver.ServerImpl$Dispatcher.run(Unknown Source) at java.lang.Thread.run(Unknown Source) java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at kz.ncanode.api.core.ApiController.invokeMethod(ApiController.java:56) at kz.ncanode.api.core.ApiController.callMethod(ApiController.java:38) at kz.ncanode.api.version.v20.ApiVersion20.process(ApiVersion20.java:97) at kz.ncanode.api.ApiServiceProvider.process(ApiServiceProvider.java:96) at kz.ncanode.interaction.interactors.HttpInteractor$HttpApiHandler.handle(HttpInteractor.java:95) at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source) at sun.net.httpserver.AuthFilter.doFilter(Unknown Source) at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source) at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(Unknown Source) at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source) at sun.net.httpserver.ServerImpl$Exchange.run(Unknown Source) at sun.net.httpserver.ServerImpl$DefaultExecutor.execute(Unknown Source) at sun.net.httpserver.ServerImpl$Dispatcher.handle(Unknown Source) at sun.net.httpserver.ServerImpl$Dispatcher.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: kz.ncanode.api.exceptions.ApiErrorException at kz.ncanode.api.version.v20.controllers.CmsController.verify(CmsController.java:206) ... 19 more
Describe the bug
Я собрал проект, подставил все библиотеки в папку lib.
При запуске на сервере java -jar ncav2.jar -config:NCANode.ini
Завис с сообщением
Starting HTTP server on 0.0.0.0:14141
До этого все прекрасно работало. Вчера упал сервис, сегодня вот такая вот проблема. Серверные настройки не менял.
Всем привет. Не подскажете почему в lib не находит библиотеку при сборке?
Caused by: org.apache.maven.project.DependencyResolutionException: Could not resolve dependencies for project kz.ncanode:ncanode:jar:2.0.1: The following artifacts could not be resolved: pki.gov.kz:kalkancrypt:jar:0.6, pki.gov.kz:kalkancryptxmldsig:jar:0.3: Failure to find pki.gov.kz:kalkancrypt:jar:0.6 in file:///root/lib was cached in the local repository, resolution will not be reattempted until the update interval of kalkan has elapsed or updates are forced
Здравствуйте!
Подписываю один документ через cms.sign (2.0) с одним ЭЦП.
В cms.verify проверяю подписанный CMS, там все правильно показывает.
Потом этот CMS подписываю снова через другой ЭЦП.
и снова проверяю через cms.verify полученный CMS, а там показывает только последний подписавший ЭЦП.
проверил через RAW.sign (1.0), тоже самое.
Вопрос: что нужно сделать чтобы после подписи сохранились все подписи?
Пробовал подписать через https://ezsigner.kz/ там все показывает (все подписи).
docker container logs 3bcf922d6a0b
--2019-03-26 06:43:50-- http://ncanode.kz/downloadlink.php
Resolving ncanode.kz (ncanode.kz)... 195.210.46.50, 2a00:5da0:1000::126
Connecting to ncanode.kz (ncanode.kz)|195.210.46.50|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://github.com/malikzh/NCANode/releases/download/v1.1.0/NCANode-v1.0.1.tar.gz [following]
--2019-03-26 06:43:50-- https://github.com/malikzh/NCANode/releases/download/v1.1.0/NCANode-v1.0.1.tar.gz
Resolving github.com (github.com)... 192.30.253.113, 192.30.253.112
Connecting to github.com (github.com)|192.30.253.113|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2019-03-26 06:43:53 ERROR 404: Not Found.
Как у пользователя забирать ключ p12 и пароль чтобы передать его по api?
Здравствуйте.
Планируете ли вы в обозримом будущем реализовать метод SignWsse?
Чтобы перевести ключ в формат base64, я должен скачать ключ к себе потом перевести в base64? NCALayer как я понял не выдает мне сам ключ или в формате base64. Спасибо
Надо будет дописать в документации вместо <NCANodeDir> -> $(pwd)/NCANode
https://ibb.co/SKtzmbH
Добрый день. Спасибо за отличную разработку. По не определенным причинам выходит ошибка памяти, настройки java памяти увеличивали, не помогает.
Необходимо покрыть юнит тестами весь критический функционал
{
"version": "1.0",
"method":"RAW.verify",
"params": {
"cms":"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",
"verifyOcsp": false,
"verifyCrl": false
}
}
Для примера пытался проверить из документации подписание пришло
{
"message": "Api error: certificate expired on 20190822121136GMT+00:00",
"status": 5
}
Хотелось бы проверить подпись не получаеться
Добрый день!
Подобный вопрос уже задавали здесь:
Подписываю один документ с двумя ЭЦП, но в signers показывает только один #40
Столкнулись с необходимостью последовательной подписи, что вы подразумеваете под xmldsig подписью?
Какая схема работы предполагается для последовательной подписи?
Ранее мы пробовали метод XML.sign для последовательной подписи, но в таком случае, после второй подписи метод XML.verify выдает ошибку.
@malikzh можете помочь с ответом?
При подписании с 1 первой версии выходит ошибка
Api error: http://crl.pki.gov.kz/d_rsa.crl
по ссылке такого файла нет. Можете ли вы обратиться в Национальный удостоверящей центр Республики Казахстан
чтобы исправить эту ошибку. Благодарен.
если что в файле ncanode.ini думаю можно убрать ссылку на этот файл? или я не прав
Надо будет добавить поддержку TSP
В методе XML.sign, добавить опцию tsp: [true|false]
, чтобы TSP сразу формировалась при создании подписи.
Добавить методы: TSP.sign
и TSP.verify
Добрый день.
Мы интегрируемся с сервисами smartbridge и хотим использовать ваш проект для подписания запросов.
Однако структура подписанного документа, сформированного согласно рекомендациям smartbridge, отличается от структуры, которую генерирует ncanode. В итоге при отправке запросов в smartbridge мы получаем ошибку, связанную с тем, что в запросе нет элемента wsse:Security
.
Вот сокращённый пример запроса, сфомированного и подписанного без ncanode, используя пример кода на java, который мы получили smartbridge. Он работает успешно:
<?xml>
<soap:Envelope>
<SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<wsse:Security>
<ds:Signature>
<ds:SignedInfo>...</ds:SignedInfo>
<ds:SignatureValue>...</ds:SignatureValue>
<ds:KeyInfo>...</ds:KeyInfo>
</ds:Signature>
</wsse:Security>
</SOAP-ENV:Header>
<soap:Body>
<SendMessage>
<request xmlns="">...</request>
</SendMessage>
</soap:Body>
</soap:Envelope>
А вот тот же запрос, подписанный через ncanode, метод XML.sign:
<?xml>
<soap:Envelope>
<SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/>
<soap:Body>
<request xmlns="">...</request>
</soap:Body>
<ds:Signature>
<ds:SignedInfo>...</ds:SignedInfo>
<ds:SignatureValue>...</ds:SignatureValue>
<ds:KeyInfo>...</ds:KeyInfo>
</ds:Signature>
</soap:Envelope>
Основное отличие в том, что ncanode добавляет подпись в элементе, не завёрнутом в <wsse:Security>
.
Подскажите: верно ли мы формируем запрос для ncanode? Обязателен ли в принципе элемент <wsse:Security>
?
Конечно, можно внести изменения в ncanode src/main/java/kz/ncanode/api/version/v10/methods/XMLSign.java
и поменять логику формирования подписи. Это наверняка сломает совместимость с существующими клиентами проекта, но если вы одобрите, то я с удовольствием сделаю пулл-реквест.
Спасибо!
Добрый день. В чем может быть причина ошибки? Начала появляться дня два назад. До этого было норм.
NCANode v2.3.0
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at kz.ncanode.api.core.ApiController.invokeMethod(ApiController.java:67)
at kz.ncanode.api.core.ApiController.callMethod(ApiController.java:39)
at kz.ncanode.api.version.v20.ApiVersion20.process(ApiVersion20.java:99)
at kz.ncanode.api.ApiServiceProvider.process(ApiServiceProvider.java:96)
at kz.ncanode.interaction.interactors.HttpInteractor$HttpApiHandler.handle(HttpInteractor.java:99)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)
at jdk.httpserver/sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:82)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:80)
at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:692)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)
at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:664)
at jdk.httpserver/sun.net.httpserver.ServerImpl$DefaultExecutor.execute(ServerImpl.java:159)
at jdk.httpserver/sun.net.httpserver.ServerImpl$Dispatcher.handle(ServerImpl.java:442)
at jdk.httpserver/sun.net.httpserver.ServerImpl$Dispatcher.run(ServerImpl.java:408)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: kz.ncanode.api.exceptions.ApiErrorException: Connection timed out (Connection timed out)
at kz.ncanode.api.version.v20.controllers.InfoController.pkcs12(InfoController.java:92)
... 19 more
Необходимо настроить автоматическую сборку образа Docker. Инструкция:
https://docs.travis-ci.com/user/docker/
Добрый день,
По документации RAW.verify может валидировать подпись ЭЦП и получить оттуда данные пользователя, но как мне проверить, что эта подпись соответствует данным, которые пользователь подписывал?
Думаю стоит добавить эти строки в Dockerfile.build:
RUN wget -P ./ca/root https://pki.gov.kz/cert/root_rsa.crt
RUN wget -P ./ca/root https://pki.gov.kz/cert/root_gost.crt
RUN wget -P ./ca/trusted https://pki.gov.kz/cert/pki_rsa.crt
RUN wget -P ./ca/trusted https://pki.gov.kz/cert/pki_gost.crt
RUN wget -P ./ca/trusted https://pki.gov.kz/cert/nca_rsa.crt
RUN wget -P ./ca/trusted https://pki.gov.kz/cert/nca_gost.crt
Здравствуйте!
Подскажите пожалуйста, как получить открепленную cms подпись?
Наподобие как в NCALayer, когда методу createCAdESFromBase64 в качестве одного из аргументов передается флаг "Включить данные в подпись"
Спасибо!
Добавить клиент:
https://github.com/danikarik/ncanode-go
Необходимо реализовать метод
CMS.multisign
Метод принимает на вход массив из:
Line 35 in 00220c6
Здравствуйте, у вас отличный проект. Можете подсказать с юридической точки зрения, насколько правомерно передавать ключи пользователей на свой сервер? Т.е. могу ли я использовать ваш сервер на проекте, на котором любой пользователь может зайти и что-то подписать? Или пользоваться может только ограниченный круг, который подписал определнное соглашение?
Есть ли возможность реализовать дистрибутив NCANode в виде WAR-файла для размещения на apache tomcat сервере ?
Хотелось бы повысить производительность в высоко нагруженных системах.
Привет, отличная работа этим продуктом, подскажите пож-та, посылаем запрос:
{"version":"1.0","method":"XML.verify","params":{"xml":"54d18b40c2de390e912f53c9fb175e64<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#\">\r\nds:SignedInfo\r\n<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315\"/>\r\n<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256\"/>\r\n<ds:Reference URI="">\r\nds:Transforms\r\n<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature\"/>\r\n<ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments\"/>\r\n</ds:Transforms>\r\n<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256\"/>\r\nds:DigestValuew4RBCS9l0/JkxLFgL6VwrY28edp5/yKkZOopRACmYfI=</ds:DigestValue>\r\n</ds:Reference>\r\n</ds:SignedInfo>\r\nds:SignatureValue\r\nJEFeBhXSemuQusnqAq1MSd8hIJeCQt+/vVSyOS33E32BVPqhxYadwsW5Kv09TrOSgky5Ln//bZbD\r\nlBwZ8jQR5cNGNOEECM2/uxl56Ps0ct9CjUEGcRBuED1IzRWt/gYa08ZDCMjwDr/zvB7vibg9FEnS\r\nE6mKxpJfX3IAi3aFf3WzV2lSndRwbtLt39T9De3hYLIbbhYuVzt5HDBpT+uUsGccsGd/2CHyTxgS\r\nJzFBzoztoyuupyR0vUiqTndwvn5soc+a+kGze7ertk/w2GFKHqYqCc9whJzDDFVUSXNDL8DQs4qw\r\nrCslANMJogc0PysQghiRNm6Ak9g7kSLN+CceZg==\r\n</ds:SignatureValue>\r\nds:KeyInfo\r\nds:X509Data\r\nds:X509Certificate\r\nMIIGQzCCBCugAwIBAgIUPic8P9v7crVTrAeVuEfwa+m0cW8wDQYJKoZIhvcNAQELBQAwUjELMAkG\r\nA1UEBhMCS1oxQzBBBgNVBAMMOtKw0JvQotCi0KvSmiDQmtCj05jQm9CQ0J3QlNCr0KDQo9Co0Ksg\r\n0J7QoNCi0JDQm9Cr0pogKFJTQSkwHhcNMjAxMjA5MDMyMzAzWhcNMjExMjA5MDMyMzAzWjCBhTEk\r\nMCIGA1UEAwwb0KjQnNCY0JTQoiDQktCb0JDQlNCY0JzQmNCgMRMwEQYDVQQEDArQqNCc0JjQlNCi\r\nMRgwFgYDVQQFEw9JSU41OTA3MTIzNTAwOTgxCzAJBgNVBAYTAktaMSEwHwYDVQQqDBjQktCb0JDQ\r\nlNCY0JzQmNCg0J7QktCY0KcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCC313P3XHL\r\nH66zlGCDM/mHR94bAQaU8CfI4pdmrvQQcA5Gqy/w+eODgGLBYs4PrxI1T31TvX/qp1sYOOuv+noO\r\nvMdkgEaHlJRseLSHoqZ6dCMx/GsOwL2lhTvqvmg6/DPeYOANYa3lRe8hnPGgyRa3PLUoaQrhhGxX\r\nBymS0SbGhxCimxriPxmU+fl1aWDpByPjjx30DISFcbA4JlySaGLzK8HBLhSsr2/gNcDFChDKXled\r\n4eufiU+LaW+l1dF6mt03+YAgkp0nRlu3Gg/9ban2YTgKKfdn5HB9YKC87hKOyrwqoWcXoCQQSOik\r\nl3QGRL2G8O351TfcdUQcsdKen+3VAgMBAAGjggHbMIIB1zAOBgNVHQ8BAf8EBAMCBsAwHQYDVR0l\r\nBBYwFAYIKwYBBQUHAwQGCCqDDgMDBAEBMA8GA1UdIwQIMAaABFtqdBEwHQYDVR0OBBYEFPrTgU/V\r\nBrZCGeNUL9eFddLx00HeMF4GA1UdIARXMFUwUwYHKoMOAwMCAzBIMCEGCCsGAQUFBwIBFhVodHRw\r\nOi8vcGtpLmdvdi5rei9jcHMwIwYIKwYBBQUHAgIwFwwVaHR0cDovL3BraS5nb3Yua3ovY3BzMFYG\r\nA1UdHwRPME0wS6BJoEeGIWh0dHA6Ly9jcmwucGtpLmdvdi5rei9uY2FfcnNhLmNybIYiaHR0cDov\r\nL2NybDEucGtpLmdvdi5rei9uY2FfcnNhLmNybDBaBgNVHS4EUzBRME+gTaBLhiNodHRwOi8vY3Js\r\nLnBraS5nb3Yua3ovbmNhX2RfcnNhLmNybIYkaHR0cDovL2NybDEucGtpLmdvdi5rei9uY2FfZF9y\r\nc2EuY3JsMGIGCCsGAQUFBwEBBFYwVDAuBggrBgEFBQcwAoYiaHR0cDovL3BraS5nb3Yua3ovY2Vy\r\ndC9uY2FfcnNhLmNlcjAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AucGtpLmdvdi5rejANBgkqhkiG\r\n9w0BAQsFAAOCAgEADHWBFI1HJWSX2D1BpWB/nL9L4OnL+zb5pK/jlzcXCcZ4OkWgELPxsKIgLzt9\r\nyVSK4AkbWwq2F5xtRHnKziTdJ7jeJrtBNcJpvRhtm222SZL8jSX9tOsMCQUaw8QR10G7aSKatKl2\r\nElu4CxnxSIIQEEix5MjehjgizGaoQG7P6EzIeac+iUywG7fIARuB3jY83q50YCnRMerYYZV54zq1\r\nCs/mXEXvlzufyBsIcSg1TKp91ztNd2yeIPfcDLq4AiM0x2J5F8mK8nSPb289HvmIP2qTAKJROkCF\r\npCv5eniSoMRIAXHYz3BkrLHpRwpJS/7Fx2txE0h3tjLI5rErzdguSSf+fpKERE9TEDHktL4rxFki\r\nBMJTVNcTmCoTUNa7p6Z60AuBmbQ1kd+jmeYHcfb4PLAMdF8DRHxuGxU2KC701aUffS9tJsPa0NTN\r\n+rPViNR1A4qvgUdC/Jvj16FSirw91wEakAsPV71xURHAoSJhzXaNmvb/mWl6Lg7GUALstZBfGCCt\r\nrlTTEUlYUE3M01Mb8IO4DJaLxVvmRr0Ro3/+sR5Rc6/5WY6xyAK8A8760W+L0PlDNxu2mfcU3yx9\r\nLbsILZm8/CVbp6A1TzUZSGI5NBV64faKru32hlRzWOlM6IiEE+fWro5g5qK5HtvaejpIfW95ZSnh\r\n+OTsgc09g1RueOQ=\r\n</ds:X509Certificate>\r\n</ds:X509Data>\r\n</ds:KeyInfo>\r\n</ds:Signature>","verifyOcsp":true,"verifyCrl":false}}
Получаем ответ {"message":"Api error: Server returned HTTP response code: 500 for URL: http://ocsp.pki.gov.kz","status":5}
Это 1 из 1000 неудачных ответов, не знаем, что и делать, в чем может быть проблема?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.