Perché i fallimenti arricciati che trovano il certificato SSL funzionano a intermittenza?
-
12-11-2019 - |
Domanda
Penso di avere una buona conoscenza del perché è necessario avere il pacchetto del certificato SSL quando tira il contenuto da un API HTTPS come Facebook.Ma la mia domanda è: perché questo funziona a volte anche senza il certificato e alcuni altri no? Mi sembra che Libcurl abbia un modo per superare questo problema da solo.
Qualcuno sa perché o come succede?Qualcuno ha avuto la stessa esperienza?
Soluzione
Il comportamento del ricciolo per quanto riguarda i certificati SSL dipende dall'opzione Curlopt_SSL_VERIFIPEER. Supponendo di utilizzare PHP, è possibile utilizzare la funzione curl_setopt per modificare il valore di questa opzione.
Ho solo una conoscenza superficiale di SSL ma sembra che il ricciolo si comporti nel modo seguente: 0 indica nessun controllo, 1 assegni se il certificato è legittimo, e 2 controlli controlla anche se il certificato viene rilasciato al nome host corretto.
Puoi 'disattivare gli errori fastidiosi' impostando Curlopt_SSL_VERIFIPEERER su 0, ma ciò significa che non è possibile essere sicuri di avere una connessione al server corretto, come chiunque può Spoof the dns . Quindi farlo è molto pericoloso.
L'Ufficiale Facebook PHP SDK fornisce il proprio certificato utilizzando Curlopt_cainfo , ma solo quando il ricciolo non può convalidare il certificato da solo. Non so perché gli sviluppatori dello SDK di Facebook farebbero questo condizionale; Forse perché la lettura dei certificati potrebbe essere costosa.