Certyfikat allegro i gSOAP/Open SSL

Certyfikat allegro i gSOAP/Open SSL
UnlimitedPL
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 6 lat
  • Postów:231
0

Witam. Dostaję taki o to komunikat:

Kopiuj
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:

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

Zawartość allegro.crt:

Kopiuj
-----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

UnlimitedPL
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 6 lat
  • Postów:231
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?

edytowany 1x, ostatnio: UnlimitedPL
JU
  • Rejestracja:prawie 12 lat
  • Ostatnio:ponad 6 lat
  • Postów:149
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#.

UnlimitedPL
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 6 lat
  • Postów:231
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ąć...

edytowany 1x, ostatnio: UnlimitedPL
JU
  • Rejestracja:prawie 12 lat
  • Ostatnio:ponad 6 lat
  • Postów:149
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 ;)

UnlimitedPL
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 6 lat
  • Postów:231
0

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

Kopiuj
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);
edytowany 1x, ostatnio: UnlimitedPL
JU
ja Ci przy C++ niestety nie pomogę, język może i znam ale brak mi doświadczenia :| Więc muszę sobie podarować temat. Ale na mój gust wszystko wygląda ok :| ale klucz webapi login i hasło dobrze wpisujesz?
UnlimitedPL
Dobrze podaje. Stawiam na źle dodany certyfikat który został znaleziony w sieci i być może to jest powodem problemu. Ja sam nawet nie wiem skąd go wziąć.
JU
a czemu nie połączysz się bez ssla? A poza tym ty się łączysz z serwerem testowym 28 - jesteś pewien że on obsługuje ssl?
UnlimitedPL
łączę się z https://webapi.allegro.pl/uploader.php?wsdl ta strona ma tylko połaczenie ssl. nie ma możliwości połączyć się ze zwykłego http i dopiero od tej strony w zależności jaki podam kod w moim programie łączy się z serwisem testowym, allegro itd
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)