Подпись HTTP запроса к госуслугам
Необходимо подписывать запросы к госуслугам сертификатом для авторизации через госуслуги. В примерах нашли как подписывать файлы. Подскажите, пожалуйста - как подписать запрос?
Узнали о существовании криптопрошного curl /opt/cprocsp/bin/amd64/curl Но он ошибку возвращает curl: (58) Problem with the local SSL certificate
если делать запрос на http - ошибки нет, если на https - ошибка, даже с параметром --insecure
Проблема решается добавлением корневых сертификатов. Я не использовал curl для этих целей, но думаю, что это не сложно. Можете подробнее описать проблему, чтобы я ее воспроизвел и поправил?
Мы добавили корневой сертификат, лицензию и сертификат с ключами, что скинул клиент (с паролем). Командами
cat /tmp/test.test | /scripts/sign 1acb2eb5afbfa29aecd9bf89c03bc54c2161041a RegNiro417
/opt/cprocsp/bin/amd64/cryptcp -sign -thumbprint 1acb2eb5afbfa29aecd9bf89c03bc54c2161041a /tmp/test.test
файлы подписываются без ошибок.
Но как подписать http запрос просто нет идей. пробовали использовать curl с разными параметрами, например
/opt/cprocsp/bin/amd64/curl -v https://esia-portal1.test.gosuslugi.ru/rs/orgs?pageIndex=0&pageSize=15 --cert 1acb2eb5afbfa29aecd9bf89c03bc54c2161041a
но все запросы возвращают ошибку
curl: (58) Problem with the local SSL certificate
По поводу криптопрошного curl техподдержка криптопро ответила: "Его нужно использовать при взаимодействии с серверами, шифрующими TLS по ГОСТ" Но... я не сильно понимаю что это значит =) Я ожидаю что api госуслуг умеют шифровать по ГОСТ.