Ho setacciato Internet e non ho trovato una soluzione o un metodo su come verificare il certificato durante la connessione su HTTPS utilizzando TIdHTTP.Delphi Indy verifica certificato server SSL
ho collegato un componente IdSSLIOHandlerSocketOpenSSL come IOHandler, impostare le SSLModes, ecc, ma quando navigo a https://s3.amazonaws.com non si può verificare il certificato.
OpenSSL (Indy) dà
"Errore di connessione con SSL SSL3_GET_SERVER_CERTIFICATE:. Certificato verifica fallita"
Le librerie OpenSSL hanno successo caricato (verificato con WhichFailedToLoad). L'evento OnStatusInfo scrive quanto segue:
stato SSL: "prima/collegare l'inizializzazione" status
SSL: "prima/collegare l'inizializzazione" status
SSL: "SSLv2/v3 cliente scrittura ciao A"
stato SSL: "SSLv3 leggere Server ciao uno" status
SSL: "SSLv3 leggere certificato del server B"
SSL s tato: "SSLv3 leggere certificato del server B"
stato SSL: "SSLv3 leggere certificato del server B"
E OnVerifyPeer, AOK = False.
Come posso verificarlo correttamente. Cosa sta succedendo?
Grazie per la lettura, Adrian
Questo è sbagliato. Indy non conosce certificati radice per impostazione predefinita. Questo ti rende vulnerabile agli attacchi MitM. È necessario impostare almeno 'VerifyMode',' VerifyDepth' e 'RootCertFile' per avere una connessione sicura. Dopodiché puoi semplicemente restituire 'AOk' per qualsiasi profondità dato che OpenSSL fa la cosa giusta per te. – TobiX