0comments

android httpsurlconnection 예제

새 TrustManager를 감안할 때 이 예제에서는 HttpsURLConnection에서 기본 SSLSocketFactory를 재정의하는 데 사용할 수 있는 SSLSocketFactory를 제공하는 새 SSLContext를 초기화합니다. 이렇게 하면 연결이 인증서 유효성 검사에 대한 귀하의 임시 카를 사용합니다. 프로젝트 인큐베이터 – 코르도바 – 안드로이드에서, 디렉토리 / 프레임 워크 / SRC / 조직 / 아파치 / 코르도바 / 아래. 이 간단한 접근 방식에는 몇 가지 단점이 있습니다. 서버는 시간이 지남에 따라 더 강력한 키로 업그레이드할 수 있어야 합니다(“키 회전”) 인증서의 공개 키를 새 키로 바꿉니까? 안타깝게도 이제 클라이언트 앱은 기본적으로 서버 구성 변경으로 인해 업데이트되어야 합니다. 서버가 앱 개발자의 제어 하에 있지 않은 경우(예: 타사 웹 서비스인 경우)가 특히 문제가 됩니다. 이 접근 방식에는 앱이 웹 브라우저 또는 전자 메일 앱과 같은 임의의 서버와 대화해야 하는 경우에도 문제가 있습니다. 프로젝트 syplod에서, 디렉토리 / src / com / 안드로이드 / picasaphotouploader / 아래. 다음은 이 작업을 수행하는 방법을 보여 주면 됩니다.

SNI 지원 없이 포트 443에 gmail.com 연결하면 mail.google.com 인증서를 받게 됩니다. 이 경우 예상되는 것이므로 인증서가 실제로 mail.google.com 있는지 확인하십시오. 감사합니다! 이 예제는 유용합니다. 일부 사이트는 리소스를 제공하는 데 사용되는 보조 웹 서버에 대해 의도적으로 이 작업을 수행합니다. 예를 들어 전체 인증서 체인이 있는 서버에서 기본 HTML 페이지를 제공하지만 이미지, CSS 또는 JavaScript와 같은 리소스에 대한 서버가 CA를 포함하지 않고 대역폭을 절약할 수 있습니다. 불행히도, 때로는 이러한 서버가 Android 앱에서 호출하려는 웹 서비스를 제공 할 수 있습니다. 이 오류가 발생할 수 있는 한 가지 이유는 서버 구성 오류 때문입니다. 서버는 도달하려는 서버와 일치하는 주체 또는 주체 대체 이름 필드가 없는 인증서로 구성됩니다. 여러 서버에서 하나의 인증서를 사용할 수 있습니다. 예를 들어 openssl s_client가 있는 google.com 인증서를 보면 google.com:443 | openssl x509 -text는 *.google.com 지원하지만 *.youtube.com, *.android.com 및 기타 주제에 대한 대체 이름도 적용한 것을 볼 수 있습니다. 이 오류는 연결하는 서버 이름이 인증서에 의해 허용 가능한 것으로 나열되지 않은 경우에만 발생합니다. 좋은! 나는 운이없이 많은 예를 따라 당신은 내 일을 만든 연결이 실패하지만 서버는 그럼에도 불구하고 유용한 데이터를 전송하는 경우 오류 스트림을 반환합니다.

Comments are closed.