Android は新しい openssl をサポートしておらず、私のアプリケーションの 1 つは openssl 1.0.1c を使用する必要があるため、openssl と curl を android にクロスビルドすることを考えました。このリンクUsing cURL in Android .. を使用して、Android用の curl と openssl をクロス ビルドしました。正常にビルドでき、共有ライブラリを取得できました。そして今、アプリケーションを実行しようとしています。アプリケーションで自己署名証明書を追加する必要があります。ネイティブの culr クライアント コードを介して SD カードに保存されている証明書を追加しようとすると、次のエラー応答が返されます。 curl ie CURLE_SSL_CERTPROBLEM (58)=>ローカル クライアント証明書に問題があります。
このアプリケーションを x86 Linux PC でテストしましたが、アプリケーションは正常に動作します。
ここに私のcurl setoptionコードを入れました.sdcardから証明書を読み込もうとしています.
以下は、証明書を設定しようとしたcurl setオプションです
curl_easy_setopt(curl,CURLOPT_SSLCERTTYPE,"DER");
curl_easy_setopt(curl,CURLOPT_SSLKEYTYPE,"DER")
curl_easy_setopt(curl,CURLOPT_SSLCERT,/sdcard/sslcerts/mycert.der);
curl_easy_setopt(curl,CURLOPT_SSLKEY,/sdcard/sslcerts/mykey.der);
curl_easy_setopt(curl,CURLOPT_CAINFO,/sdcard/sslcerts/mycacert.root);
curl_easy_setopt(curl,CURLOPT_CAPATH,/sdcard/sslcerts/);
Android ndkレベルで証明書を設定するための正しいアプローチに従っていますか?. このアプリケーション lib が使用されているので、私の Java アプリケーションは証明書をロードする別の方法があります。