2015-03-24 8 views
0

Я использую libcurl как http-клиент. Я хочу использовать SSL, поэтому я добавил следующие строкиКаким должно быть содержимое файлов, связанных с CURLOPT_SSLCERT и CURLOPT_CAINFO?

curl_easy_setopt(curl, CURLOPT_SSLCERT, "/path/ssl_cert"); 
curl_easy_setopt(curl, CURLOPT_CAINFO, "/path/ssl_cainfo"); 

, что должно быть содержание обоих файлов "/path/ssl_cert" и "/path/ssl_cainfo"?

я могу получить сертификат SSL от сервера с помощью команды OpenSSL:

linux# openssl s_client -connect 192.168.1.199:8443 | tee logfile 
depth=0 C = GB, ST = XX, O = \"My Org\", CN = \"Wireshark dissectable Cert\" 
verify error:num=18:self signed certificate 
verify return:1 
depth=0 C = GB, ST = XX, O = \"My Org\", CN = \"Wireshark dissectable Cert\" 
verify return:1 
CONNECTED(00000003) 
--- 
Certificate chain 
0 s:/C=GB/ST=XX/O="My Org"/CN="Wireshark dissectable Cert" 
    i:/C=GB/ST=XX/O="My Org"/CN="Wireshark dissectable Cert" 
--- 
Server certificate 
-----BEGIN CERTIFICATE----- 
MIIDezCCAmOgAwIBAgIJANg/99pVuxpbMA0GCSqGSIb3DQEBBQUAMFQxCzAJBgNV 
BAYTAkdCMQswCQYDVQQIDAJYWDERMA8GA1UECgwIIk15IE9yZyIxJTAjBgNVBAMM 
HCJXaXJlc2hhcmsgZGlzc2VjdGFibGUgQ2VydCIwHhcNMTUwMzE5MTYwNTAwWhcN 
MTUwNDE4MTYwNTAwWjBUMQswCQYDVQQGEwJHQjELMAkGA1UECAwCWFgxETAPBgNV 
BAoMCCJNeSBPcmciMSUwIwYDVQQDDBwiV2lyZXNoYXJrIGRpc3NlY3RhYmxlIENl 
cnQiMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3VVczByO2yiwrmNM 
ggulxh/XBJPiFij46ebMKTh/7A+O9fDOQXvEVxkZBpgVtM6B5sQYMb9F0EeRiR2O 
Z0RmiPKLvoeGiMFbDh1v3amIbc6jbyBITBn8ZMSZs0OMWhE7grFq1XHmNGWmka1E 
OaEhICsJtkLc8DghqIFDer0cl9ZygbM7APBThq2bhpWkld/jinqxnlhYzrJb1WUM 
sMZSNRjdsHv8UtJ0xR98tUl8kD3JcExApH4z/emxLZXDMfEnGub0kR/qr8fmgKPq 
8FnId233KTY248cmHn8odxyFe6UA8YDiTASUMpTEDrXjpzmS6T7SmlodwE6DRoaX 
JuHfywIDAQABo1AwTjAdBgNVHQ4EFgQU6ifQ4/1QiTb04/yVXMssNienjSYwHwYD 
VR0jBBgwFoAU6ifQ4/1QiTb04/yVXMssNienjSYwDAYDVR0TBAUwAwEB/zANBgkq 
hkiG9w0BAQUFAAOCAQEAwwbIIxAwCGMuYPWEhkr6XOsI7GujP9U4dGsPGuDfCOD7 
mtGOyf1qUOhCFbVS+wTYa1RgtbYNJJv0K/uG1H2zYOK1TnjH/aptZVflrgz3glam 
OPsZcF5qVu4z18/tauOOkP1dRRXYO4CZlzE6Vtml7RRPbQdMYvSL8ReKQVHMKERm 
/1sOim66j6IBE/SGF9vYeiofh1NtmPVEg4z0wvnVZK8CSX8FBPsQpGUnfOjhL3z8 
dokcA3lr/qxGgIeLAoeZqRHBd0SW6iTDAAJ/O0fvJQpz+RhdTQoDbf8xTmD03bCX 
nnEw1OOTCNlJtVyFsGrX+19TViX7QaXLTMiJ0GfCBg== 
-----END CERTIFICATE----- 
subject=/C=GB/ST=XX/O="My Org"/CN="Wireshark dissectable Cert" 
issuer=/C=GB/ST=XX/O="My Org"/CN="Wireshark dissectable Cert" 
--- 
No client certificate CA names sent 
--- 
SSL handshake has read 1039 bytes and written 638 bytes 
--- 
New, TLSv1/SSLv3, Cipher is DES-CBC3-SHA 
Server public key is 2048 bit 
Secure Renegotiation IS NOT supported 
Compression: NONE 
Expansion: NONE 
SSL-Session: 
    Protocol : TLSv1 
    Cipher : DES-CBC3-SHA 
    Session-ID: 551197E75936D761CF64E18E338FF0E94BC01E019E02BD8F70AB07CEC288164B 
    Session-ID-ctx: 
    Master-Key: 5D000DD4CC4A3FA0FBFF78282F171ACB181806E79531381F8858A724355747D26344FEFF8EBD9666FF4B703AEEED7FFC 
    Key-Arg : None 
    PSK identity: None 
    PSK identity hint: None 
    SRP username: None 
    Start Time: 1427216305 
    Timeout : 300 (sec) 
    Verify return code: 18 (self signed certificate) 
--- 

Но я не знаю, что я должен положить на каждый файл.

ответ

-1

Я думаю, что документы достаточно понятны для обоих этих вариантов. Было бы полезно, если бы вы могли уточнить, что в документах, которые вам не понятны.

CURLOPT_SSLCERT - имя файла вашего сертификата клиента, а CURLOPT_CAINFO - это имя файла вашего пакета сертификатов CA. Пакет является одним или несколькими сертификатами для проверки партнера.

+1

Можете ли вы предоставить пример содержания для – MOHAMED

+0

Google для «примерного сертификата клиента PEM» и «пример CA Cert PEM», и вы найдете много прекрасных примеров. –

Смежные вопросы