Przeszukałem Internet i nie znalazłem rozwiązania ani metody sprawdzania certyfikatu podczas łączenia się przez HTTPS przy użyciu TIdHTTP.Delphi Indy zweryfikuj certyfikat serwera SSL
Podłączyłem komponent IdSSLIOHandlerSocketOpenSSL jako IOHandler, ustawiłem SSLModes itp., Ale kiedy przeglądam do https://s3.amazonaws.com, nie mogę zweryfikować certyfikatu.
OpenSSL (Indy) daje
"Błąd połączenia z SSL SSL3_GET_SERVER_CERTIFICATE. Certyfikat zweryfikować failed"
Biblioteki OpenSSL pomyślnie załadowany (sprawdzone z WhichFailedToLoad). Impreza OnStatusInfo pisze następujące:
stan SSL: "przed/połączyć inicjalizacji" status
SSL: "przed/połączyć inicjalizacji" status
SSL: "SSLv2/v3 zapisu klienta powitania A"
stan SSL: "SSLv3 serwer czytać komentarzy A"
stan SSL: "SSLv3 czytać certyfikat serwera B"
SSL s tatus "SSLv3 czytać certyfikat serwera B"
stan SSL: "SSLv3 czytać certyfikat serwera B"
And OnVerifyPeer, AOK = False.
Jak mogę go uzyskać, aby zweryfikować poprawnie. Co się dzieje?
Dzięki za czytanie, Adrian
To jest złe. Indy domyślnie nie zna żadnych certyfikatów głównych. To sprawia, że jesteś podatny na ataki MitM. Musisz ustawić co najmniej 'VerifyMode',' VerifyDepth' i 'RootCertFile', aby mieć bezpieczne połączenie. Po tym możesz po prostu zwrócić 'AOk' na dowolną głębokość, ponieważ OpenSSL robi to, co właściwe dla ciebie. – TobiX