Certyfikat allegro i gSOAP/Open SSL

0

Witam. Dostaję taki o to komunikat:

SSL_ERROR_SSL
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Wyczytałem że trzeba dodać jakiś certyfikat ale jaki i skąd go wziąć? Generalnie chodzi o webapi allegro. Nigdzie nie znalazłem jak można pobrać ten certyfikat i jak go użyć.

Jedyne co znalazłem to użycie funkcji i jakiś plik allegro.crt lecz i tak nie działa (być może zła zawartość/rozszerzenie). Moje dotychczasowe wypociny to:

soap_ssl_client_context(&soap, SOAP_SSL_DEFAULT, NULL, NULL, "allegro.crt", NULL, NULL);

Zawartość allegro.crt:

-----BEGIN CERTIFICATE-----
MIIFKjCCBBKgAwIBAgIQFftl9+20xtBh20IsiNvAqDANBgkqhkiG9w0BAQUFADCB
izELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE5MDcGA1UECxMw
VGVybXMgb2YgdXNlIGF0IGh0dHBzOi8vd3d3LnRoYXd0ZS5jb20vY3BzIChjKTA2
MSowKAYDVQQDEyF0aGF3dGUgRXh0ZW5kZWQgVmFsaWRhdGlvbiBTU0wgQ0EwHhcN
MTEwOTAyMDAwMDAwWhcNMTMxMjAxMjM1OTU5WjCByDETMBEGCysGAQQBgjc8AgED
EwJQTDEdMBsGA1UEDxMUUHJpdmF0ZSBPcmdhbml6YXRpb24xEzARBgNVBAUTCjAw
MDAyNjg3OTYxCzAJBgNVBAYTAlBMMRYwFAYDVQQIFA13aWVsa29wb2xza2llMQ8w
DQYDVQQHFAZQb3puYW4xITAfBgNVBAoUGEdydXBhIEFsbGVncm8gU3AuIHogby5v
LjELMAkGA1UECxQCSVQxFzAVBgNVBAMUDnNzbC5hbGxlZ3JvLnBsMIIBIjANBgkq
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuTy3bMksifrQqihQs5nXsychJ4nr5lE0
hCcB+dpxLoaclKo7s1uaO30Ce1DXogkPS/pnA8I8Dat6+y2K9WBN4LCjXxpD5wFM
KRRPyJ1A8aw6OoLV0ml6A16DzlULs/eHO0dGm1NNyydx7d8mhvhlFbnL7nnYYT3F
KvW8t7H2LYrUMsLEvkz+J4HlnrsFvcLo0gJhTnZLSGLEBkeia9mp4PZcQ1HLPEdF
U4dmAysw9mF52qjiSRJEG2VcQ5gVXr5EcUuJ9SCqjZJDtaRHTS2yMca3g+aqz1h4
cnaCh5W7Piej7dYjXFcc+ik/LOv5LxHSS/EbVZ27A94iGzyiCt4+VQIDAQABo4IB
STCCAUUwDAYDVR0TAQH/BAIwADA5BgNVHR8EMjAwMC6gLKAqhihodHRwOi8vY3Js
LnRoYXd0ZS5jb20vVGhhd3RlRVZDQTIwMDYuY3JsMEIGA1UdIAQ7MDkwNwYLYIZI
AYb4RQEHMAEwKDAmBggrBgEFBQcCARYaaHR0cHM6Ly93d3cudGhhd3RlLmNvbS9j
cHMwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFM0y
4vJdJUcCqo95SzLuA5n9MEnRMHYGCCsGAQUFBwEBBGowaDAiBggrBgEFBQcwAYYW
aHR0cDovL29jc3AudGhhd3RlLmNvbTBCBggrBgEFBQcwAoY2aHR0cDovL3d3dy50
aGF3dGUuY29tL3JlcG9zaXRvcnkvVGhhd3RlX0VWX0NBXzIwMDYuY3J0MA0GCSqG
SIb3DQEBBQUAA4IBAQCwTkxLnX+CNrV9iu5Qp2x7eT4Xgac0tG2Ua+gtxZ1/ujHa
5++vzGO9cavLcy/jqsInyHw5bcjKrxKONwAkXZ6kRx+wSN13PK0TfnvGpk70k731
dK7scEtxh2c9g96l8Khr5H50XO5HNtIzy18JXd44Q07+mmPm9RLzRZYr0amcj6ba
OJ2Lor5iimLymIAy6OWU3vKZxW1UK3rUQSMi+aNU8iN7EaV+L6nWOcr6150N+TPU
I+ys2HkFRnpFSKkd8/eK44reSMkeFFKQCdFmdRh0jSrgstk4x3AwzndrTraVi4YI
299DdK1o20vUC0Weh+oO83pQT8pIvbNB+vOfJPlQ
-----END CERTIFICATE-----

Miał ktoś do czynienia z certyfikatami i wie coś na ten temat?

0

Za mało szczegółów! Opisz po krótce, co chcesz zrobić. Certyfikat generujesz sobie tak (najogólniej rzecz biorąc, bo nie wiem co chcesz zrobić):

openssl genrsa -out keyfile.pem 4096
openssl req -new -x509 -days 1826 -key keyfile.pem -out certfile.pem

0

mumms attack, dzięki za odpowiedź.

No chcę się połączyć z allegro poprzez ich webapi. Do tego potrzebuję właśnie połączenia SSL, które wymaga certyfikatu, którego nie wiem skąd wziąć i nie wiem jak dodać do programu. W twoim przypadku skąd wziąć plik keyfile.pem?

0

Powiem tak, żeby się połączyć z allegro przez web api ja kiedyś brałem stąd informacje: http://wrzasq.pl/blog/allegro-webapi-tutorial-vol-1.html ( może i php ale może Cię naprowadzi trochę).
Ja pisałem progz w C#.

0

juniorchat, dzięki za odpowiedź.

W C# też wiem jak to zrobić i działa mi bo Visual Studio sam pobiera sobie certyfikat i działa bez zbędnego bawienia się i kompilowania czegokolwiek. Lecz chcę zrobić program wieloplatformowy C++/Qt i tutaj mi wywala błąd z tym certyfikatem i nawet nie wiem skąd go wziąć...

0

Wieloplatformowy - do tego słowa mam tylko jedno skojarzenie przeglądarka - czyli pewnie PHP ;)
Ale oczywiście w C++ pewnie też się da uzyskać taki certyfikat wiec to tylko taka dygresja ;)

0

Czyli sprawa dalej nie rozwiązana. Może ktoś wie jak to zrobić? A może mój kod jest zły?

soap_init(&soap);
    soap_ssl_init();
    soap.connect_timeout = 5;
    soap_ssl_client_context(&soap, SOAP_SSL_NO_DEFAULT_CA_PATH, NULL, NULL, "allegro.crt", NULL, NULL);

    key = 56958177;
    result = allegro.doLogin("loign", "password", 228, "kluczwebapi", key, response);

    qDebug() << response.server_time;
    qDebug() << response.user_id;
    qDebug() << response.session_handle_part;
    qDebug() << result;
    qDebug() << allegro.fault->faultstring;

    soap_destroy(&soap);
    soap_end(&soap);
    soap_done(&soap);

1 użytkowników online, w tym zalogowanych: 0, gości: 1