인디노트

안드로이드 개인 인증서 추가 관련 정보 본문

인증기술/PKI 기술

안드로이드 개인 인증서 추가 관련 정보

인디개발자 2018. 12. 27. 09:54

안드로이드 https 에서 개인 인증서 추가하기

여기서 핵심은 실제로 추가하는 것이 아니라, keystore 를 직접 만들어서 이 keystore 에 인증서를 담고, https 통신을 하는 것이다.


pc에서 인증서 추가시

기본적으로 우리가 local pc 에 인증서를 추가한다면, 여기에 나온 것처럼 runtime 에서 사용하는 cert 에 추가하면 된다. 이것은 우리가 마음대로 접근할 수 있어서 그냥 넣을 수 있다.

그런데 android 는 이부분이 기본적으로 막혀있다. 우리는 dalvik runtime 을 마구 건들 수 없다. 적어도 rooting 을 하지 않는다면 말이다. 물론 이 부분이  Android version 4.0 이후 달라졌다.



app 에서 개인이 만든 인증서 사용시

그리고 또 하나, 우리가 만약 application 을 만들어서 배포하는데, 공인된 인증서가 아닌 다른 녀석을 쓴다면 문제가 된다. 이녀석을 인증하기 위해서 runtime 에서 사용하는 cert 를 확인할 텐데, 이녀석을 우리가 수정할 수가 없다.

그래서 이것을 중간에서 다른 녀석이 해주는 것이다. 그것이 아래 링크에서 하는 이야기이다.
  1. Security with HTTPS and SSL  > Unknown certificate authority | http://developer.android.com/
  2. HTTPS with Client Certificates on Android - Chariot Solutions
방법은 기존의 keystore 를 보지 않고, 새롭게 keystore 를 만들고, 거기에 내가 원하는 certificate 을 넣어주는 것이다. 이렇게 해서 https 통신할 때 이 keystore 를 사용하도록만 해주면 된다.

1 번째 방법에서는 DER format 으로 된 certificate 을 불러오고, 이 녀석을 keystore 에 넣는 과정을 거친다.

2번째 글에서는 다양한 방법을 보여주는데, 1번째와 같은 방법도 소개한다. 그런데 여기서 사용하는 소스를 볼 수 있어서 훨씬 이해하고, 사용하기 좋은 듯 하다.





See Also


위 링크에선 각 저장포맷에 대한 정보를 얻을 수 있다.  PEM -> PKCS#12 로 변환 하는 법도 알려준다. 기본적으로 안드로이드는 java key store .jks를 사용한다. (KeyStore | Android Developers)


반응형
Comments