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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top