Mein Code versucht, auf einen HTTPS-Server zuzugreifen, und er hat sein eigenes Zertifikat. Beispiel, die IP ist "10.0.1.101".
Wenn ich durch Safari gehe und auf "http://10.0.1.101" zugreife, ist alles in Ordnung. Ich mache eine einfache curl_easy_perform () für diese URL und Daten können aus der HTTP-URL abgerufen werden. Cool.
Ich versuche dann auf "https://10.0.1.101" (ja, HTTPS) zuzugreifen und von Safari akzeptiere ich das Zertifikat und gebe ihm eine "Vertrauens" -Option und danach ist der Safari-Zugriff auf die HTTPS-URL in Ordnung .
So wurde das Zertifikat zum Mac-Schlüsselbund hinzugefügt, aber wenn ich eine curl_easy_perform () für die HTTPS-URL ausprobiere, kommt es immer noch mit einem CURLE_SSL_CACERT zurück. libcurl konnte das HTTPS-Zertifikat nicht mit bekannten CA-Zertifikaten authentifizieren.
Was ist die fehlende Verbindung zwischen libcurls Zertifikatsprüfung und Mac Keychain? Gibt es überhaupt einen Link? Ist es möglich, libcurl in den Mac Keychain für Zertifikate zu schauen? Wenn ja, wie?
Nein. libcurl, das für die Verwendung von OpenSSL entwickelt wurde, liest nur CA-Zertifikate aus einer einzelnen PEM-Datei oder aus einem Verzeichnis von CA-Zertifikaten, die im OpenSSL-Format erstellt wurden.
Es gibt keine spezielle Magie für den Mac Keychain implementiert.