Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
Как использовать СКЗИ Крипто-ПРО совместно с curl
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.11.2018(UTC) Сообщений: 44 Откуда: Рязань Сказал(а) «Спасибо»: 4 раз
|
Пытаюсь запустить curl для проверки клиентской аутентификации на сервере нгинкс + гост 2012. Без аутентификации сервер работает по гост Генерирую клиентские сертификаты на клиентской машине Код:
aclient_certname="aclient.com"
aclient_container="aclient"
certs_path_client=/etc/certs/client/gost/cpro/
provtype='81' #75, 80, 81
provnameKC1='Crypto-Pro GOST R 34.10-2012 KC1 Strong CSP'
provnameKC2='Crypto-Pro GOST R 34.10-2012 KC2 Strong CSP'
mkdir -p ${certs_path_client}
##
## Генерация тестового сертефиката клиента A:
/opt/cprocsp/bin/amd64/cryptcp -creatcert -provtype ${provtype} -provname "${provnameKC1}" -rdn "CN=${aclient_certname}" -cont "\\\\.\\HDIMAGE\\${aclient_container}" -certusage 1.3.6.1.5.5.7.3.2 -ku -du -ex -ca http://cryptopro.ru/certsrv || exit 1
#
## Смена KC1 на KC2 в имени провайдера, так как nginx работает с провайдером KC2:
/opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont "\\\\.\\HDIMAGE\\${aclient_container}" -provtype ${provtype} -provname "${provnameKC2}" || exit 1
#Далее получаю серийник сертификата
/opt/cprocsp/bin/amd64/certmgr -list -store umy -dn "CN=${aclient_certname}"
вывод команды
============================================================================= 1------- Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2 Subject : CN=aclient.com Serial : 0x1200326132F81081D001C2BDC6000000326132 SHA1 Hash : 3bb476f16d708dd0a2f43fc29d85e2c46a924d3c SubjKeyID : 138ff20e4546d2df588b532cbe60f0ede0a5f225 Signature Algorithm : ГОСТ Р 34.11/34.10-2001 PublicKey Algorithm : ГОСТ Р 34.10-2012 (1024 bits) Not valid before : 13/02/2019 21:00:36 UTC Not valid after : 13/05/2019 21:10:36 UTC PrivateKey Link : Yes Container : HDIMAGE\\aclient.000\C898 Provider Name : Crypto-Pro GOST R 34.10-2012 KC2 Strong CSP Provider Info : ProvType: 81, KeySpec: 1, Flags: 0x0 CA cert URL : http://testca.cryptopro....%20Test%20Center%202.crtOCSP URL : http://testca.cryptopro.ru/ocsp/ocsp.srfCDP : http://testca.cryptopro....%20Test%20Center%202.crlExtended Key Usage : 1.3.6.1.5.5.7.3.2
Беру серийник и вставляю в курл и получаю ошибку
Код: /opt/cprocsp/bin/amd64/curl -vvv --ciphers GOST2012-GOST8912-GOST8912 \
> --cacert /etc/certs/ca-crt-cpro.pem \
> --cert 1200326132F81081D001C2BDC6000000326132 \
> --url https://meteotravel.ru/ --cert-type CERT_SHA1_HASH_PROP_ID:CERT_SYSTEM_STORE_CURRENT_USER:uMy
* About to connect() to meteotravel.ru port 443 (#0)
* Trying 192.168.1.241... connected
* Connected to meteotravel.ru (192.168.1.241) port 443 (#0)
* Closing connection #0
* Problem with the local SSL certificate
curl: (58) Problem with the local SSL certificate
Вот конфиг нгинкса
Код:
ssl_client_certificate /etc/certs/ca-bundle.pem;
ssl_verify_client on;
#Криптопро конфиг
ssl_certificate /etc/certs/server/gost/cpro/meteotravel.ru.pem;
ssl_certificate_key engine:gostengy:meteotravel.ru;
ssl_certificate /etc/certs/server/rsa/crt.pem;
ssl_certificate_key /etc/certs/server/rsa/key.pem;
server_name meteotravel.ru;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers GOST2012-GOST8912-GOST8912:GOST2001-GOST89-GOST89:HIGH;
ssl_prefer_server_ciphers on;
вот содержимое ca-bundle-pem (это набор сертификатов доверенных уц которые выдают как клиентские так и серверные сертификаты)
Код:
-----BEGIN CERTIFICATE-----
MIIDwDCCAqigAwIBAgIJAKTUyyg8icmNMA0GCSqGSIb3DQEBCwUAMHUxCzAJBgNV
BAYTAlJVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
aWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB2FiYy5jb20xHDAaBgkqhkiG9w0BCQEW
DWFkbWluQGFiYy5jb20wHhcNMTgxMjE3MTQyMzI5WhcNMTkxMjE3MTQyMzI5WjB1
MQswCQYDVQQGEwJSVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50
ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdhYmMuY29tMRwwGgYJKoZI
hvcNAQkBFg1hZG1pbkBhYmMuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEA+VbUfRM4bDfJQqQLip6cWvEXwA3oNtqvzJVWN5M1xN00+0jVyQSTyVXx
L+w+5tvkP7yz1N/4cZy1wxlQ695lF/TrONEbl/2XHlH/AmJULefHpMt9q0y8JB1a
M8YNbvCOevpX62XLmnSUQ+RgSV8bIrbSBpYKQyGHy7c7VyEaoOJrX4/ZTtyvVGsY
1gxi3v0zmS6XFWg6VtxggEkb9ZIC04JAuQo/MhgIFy0ycEWd9Izfs4p6eKqF4mAz
XZ0xY4+fZI95SwY8xvDh2+DWI9CGF1Vz74RYPa3iwH37yjo4etcnK3ENm88HHA7A
IN8qD/1VhHVJOtRMQWSSJDiJhg1D/QIDAQABo1MwUTAdBgNVHQ4EFgQUGX5hWOMV
i8dRPW5dv9Tfp9X5EggwHwYDVR0jBBgwFoAUGX5hWOMVi8dRPW5dv9Tfp9X5Eggw
DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAYyAX8sJQ70k4w2A/
M5V94C0Y8LzF5kvDkapLU3XrPkKkjkhzfoORAnUlVjS1PWYZbc58P90lwWOqlH4c
Q4WDcJN1l0juycDc+rVLzYhIEiWlqVk6zZMLzFe53sfe4yQ7UNT8jqd0VA8rj9Wr
finisJnKdzqV2d/JH5nhEIdON7rZ72NvB0reinLGfH2gGkXc5pYT3mWy23/tNzSq
qseOWaZlVrxMVMsQ+W/uXKR2W7Ub1dSVcbfEKSe+JLm1xvOqvBWn+1IE96YPIJVv
NlNDWr6kXDT04qO/bCVf5XJXm7r4Qvk6BoLo/0CXq6S9H29W+mV+ilybQKsoOpK3
GtgY2A==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICTDCCAfugAwIBAgIQK24zUf1usq1IIAIDy1uhQTAIBgYqhQMCAgMwfzEjMCEG
CSqGSIb3DQEJARYUc3VwcG9ydEBjcnlwdG9wcm8ucnUxCzAJBgNVBAYTAlJVMQ8w
DQYDVQQHEwZNb3Njb3cxFzAVBgNVBAoTDkNSWVBUTy1QUk8gTExDMSEwHwYDVQQD
ExhDUllQVE8tUFJPIFRlc3QgQ2VudGVyIDIwHhcNMTQwODA1MTM0NDI0WhcNMTkw
ODA1MTM1NDAzWjB/MSMwIQYJKoZIhvcNAQkBFhRzdXBwb3J0QGNyeXB0b3Byby5y
dTELMAkGA1UEBhMCUlUxDzANBgNVBAcTBk1vc2NvdzEXMBUGA1UEChMOQ1JZUFRP
LVBSTyBMTEMxITAfBgNVBAMTGENSWVBUTy1QUk8gVGVzdCBDZW50ZXIgMjBjMBwG
BiqFAwICEzASBgcqhQMCAiMBBgcqhQMCAh4BA0MABEDgUgrcR9wpvdcgXwxIfO/U
jR52JdC9UgWOrc3Ky2YMpunm+lAm5JIgbnCASrzW/Q43EMfmhQGy7dZijrm3zcee
o1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUFTF8
sI0a3mbXFZxJUpcXJLkBeoMwEAYJKwYBBAGCNxUBBAMCAQAwCAYGKoUDAgIDA0EA
2MocS+lhIGVHLNXI6jiI3s3scchFv7+c5d7/VVp3JJnt4Lki0avn90/m0G97j1oq
407pZA2QUDLB8eO0SRJX1Q==
-----END CERTIFICATE-----
Второе это сертификат тестового уц криптопро (локального) Для двусторонней аутентификации по РСА используется такая же схема работы и там все прекрасно работает вот команда
curl -v --ciphers ECDHE-RSA-AES256-GCM-SHA384 \ --cacert /etc/certs/ca-crt-rsa.pem \ --key /etc/certs/client/rsa/aclient-key.pem \ --cert /etc/certs/client/rsa/aclient-crt.pem --url https://meteotravel.ru/
Тут еще задается ключ как задать ключ в криптопрошном curl не понятно версия curl
/opt/cprocsp/bin/amd64/curl -V curl 7.21.3 (x86_64-pc-linux-gnu) libcurl/7.21.3 SSPI/CPRO Dec 9 2018 03:56:07 zlib/1.2.11 Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smtp smtps telnet tftp Features: IPv6 Largefile NTLM SSL SSPI libz
В общем кто знает или сталкивался подскажите, плиз, в чем ошибка. Отредактировано пользователем 14 февраля 2019 г. 1:02:24(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.11.2018(UTC) Сообщений: 44 Откуда: Рязань Сказал(а) «Спасибо»: 4 раз
|
в общем нашел ответ --cert: используем SHA1 хэш сертификата полученный через /opt/cprocsp/bin/amd64/certmgr -list --ca-cert: используем серт УЦ криптопро тестового ( или того который выдал и клиентский и серверный серты) --cert-type: хранилище сертифиатов юзера ( у меня это root) Код:/opt/cprocsp/bin/amd64/curl -vvv --ciphers "GOST2012-GOST8912-GOST8912:GOST2001-GOST89-GOST89" \
--cacert /etc/certs/ca-crt-cpro.pem \
--cert "5992274720def83ef7b99aa7d5957aa2856106f4" \
--cert-type "CERT_SHA1_HASH_PROP_ID:CERT_SYSTEM_STORE_CURRENT_USER:MY" \
--url https://meteotravel.ru/
Команда для генерации клиентского серта (Нужно использовать кс1 провайдер, на кс2 как для серверного не менять) Код:/opt/cprocsp/bin/amd64/cryptcp -creatcert -exprt -provtype 81 -provname "Crypto-Pro GOST R 34.10-2012 KC1 Strong CSP" -rdn "CN=client.com" -cont "\\\\.\\HDIMAGE\\client" -certusage "1.3.6.1.5.5.7.3.2" -ku -both -ca http://cryptopro.ru/certsrv || exit 1
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.11.2018(UTC) Сообщений: 44 Откуда: Рязань Сказал(а) «Спасибо»: 4 раз
|
Как выполнить генерацию ключа и сертификата на уц 2.0 последнего релиза чтобы было аналогично команде Код:/opt/cprocsp/bin/amd64/cryptcp -creatcert -exprt -provtype 81 -provname 'Crypto-Pro GOST R 34.10-2012 KC1 Strong CSP' -rdn "CN=kclient.com" -cont "\\\\.\\HDIMAGE\\kclient" -certusage "1.3.6.1.5.5.7.3.4,1.3.6.1.4.1.311.10.3.12,1.3.6.1.5.5.7.3.2,1.2.643.5.1.28.5.1.1,1.2.643.2.2.34.6" -ku -ca http://cryptopro.ru/certsrv
Установил что клиентская аутентификация для nginx+ gostengy работает только с такими сертификатами либо у которых указан ключ -both в команде Отредактировано пользователем 17 февраля 2019 г. 13:51:57(UTC)
| Причина: Не указана
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 22.10.2018(UTC) Сообщений: 9 Сказал(а) «Спасибо»: 3 раз
|
Alt 8.1 amd64 (9.1 aarch64 аналогично) cprocsp 5.0.12000-6.x86_64 имеем установленную системную curl и cprocsp-curl при вызове capilite CertGetCertificateChain ловится краш munmap_chunk(): invalid pointer: 0x00007fffc4982dd0 ***======= Backtrace: ========= /lib64/libc.so.6(+0x6f325)[0x7ffff4e65325] /lib64/libc.so.6(+0x74ae6)[0x7ffff4e6aae6] /usr/lib64/libcurl.so.4(+0x3136e)[0x7ffff7b8636e]/usr/lib64/libcurl.so.4(curl_multi_cleanup+0xdc)[0x7ffff7b8821c]/opt/cprocsp/lib/amd64/libcpcurl.so(curl_easy_perform+0x1a9)[0x7fffc497ebd9]/opt/cprocsp/lib/amd64/liburlretrieve.so.4(_ZN12UrlRetriever12retrieve_urlEPKc+0x621)[0x7fffda1f9c91] /opt/cprocsp/lib/amd64/libcapi20.so.4(+0xc0e4b)[0x7fffda4bce4b] /opt/cprocsp/lib/amd64/libcapi20.so.4(+0xc16b1)[0x7fffda4bd6b1] /opt/cprocsp/lib/amd64/libcapi20.so.4(CryptRetrieveObjectByUrlA+0xd6)[0x7fffda4bd856] /opt/cprocsp/lib/amd64/libcapi20.so.4(+0x6c3bb)[0x7fffda4683bb] /opt/cprocsp/lib/amd64/libcapi20.so.4(+0x6c4f0)[0x7fffda4684f0] /opt/cprocsp/lib/amd64/libcapi20.so.4(+0x74976)[0x7fffda470976] /opt/cprocsp/lib/amd64/libcapi20.so.4(+0x74b9c)[0x7fffda470b9c] /opt/cprocsp/lib/amd64/libcapi20.so.4(+0x74e36)[0x7fffda470e36] /opt/cprocsp/lib/amd64/libcapi20.so.4(+0xb9794)[0x7fffda4b5794] /opt/cprocsp/lib/amd64/libcapi20.so.4(CertGetCertificateChain+0x6e)[0x7fffda4b5e1e] удаление cprocsp-curl помогает, но хотелось бы более элегантное решение\исправление.В нашем коде вызовы curl также используются. Отредактировано пользователем 19 июля 2021 г. 1:33:55(UTC)
| Причина: Не указана
|
|
|
|
Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
Как использовать СКЗИ Крипто-ПРО совместно с curl
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close