Android는 새로운 openssl을 지원하지 않으며 내 응용 프로그램 중 하나는 openssl 1.0.1c를 사용해야하기 때문에 openssl과 cross to building을 android로 생각했습니다. 나는이 링크 Using cURL in Android의 도움으로 안드로이드에 대한 컬과 openssl을 만들었다. 나는 성공적으로 빌드 할 수 있고 공유 된 라이브러리를 가지고있다. 이제 내 응용 프로그램을 실행하려고합니다. 내 응용 프로그램에서 내 자체 서명 인증서를 추가해야합니다. 내 기본 culr clienr 코드를 통해 sdcard에 저장된 인증서를 추가하려고하면 다음 오류 응답이 표시됩니다. curl ie CURLE_SSL_CERTPROBLEM (58) => 로컬 클라이언트 인증서에 문제가 있습니다.은 android ndk curl 응용 프로그램에서 openssl 인증서를 포함합니다.
이 응용 프로그램을 x86 Linux PC에서 테스트했는데 응용 프로그램이 정상적으로 작동합니다. 나는 여기
내 컬에서 SetOption 코드를 넣어 가지고, 그에 난 그냥 아래
내가 인증서 표시를 설정하려고 컬 세트 옵션입니다 SDCARD에서 인증서를 읽기 위해 노력하고
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 응용 프로그램이 사용되기 때문에 certs를로드하는 다른 방법이 있습니다.
귀하의 앱이 1.0.1c openssl 라이브러리를 사용하는지 어떻게 확인합니까? 특별한 조치를 취하지 않으면 시스템 라이브러리가로드됩니다! –