Develop

[ios] APNS에 사용할 인증서 만들기 (KeyChain에 있는 인증서 Export)

by hooni posted Jan 03, 2015
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

APNS를 사용하기 위해서 인증서가 필요하다. 메시지를 보내는 내가 인증된 사람(서버)인지 확인하기 위한 절차이다. APNS을 설정하고 인증서를 등록하는 것은 생략하고 이미 등록된 인증서를 뽑아서 사용하기 위해서 필요한 인증서 파일을 만드는 것을 설명하려 한다.

KeyChain에 있는 인증서 Export하기

맥의 인증서는 KeyChain에서 관리를 한다. APNS를 설정했다면 인증서가 KeyChain에 들어 있을 것이다. 이것을 Export해서 서버에서 사용할 형태로 변환다.

figure01.png

<그림 1> 인증서 Export 화면

그림에서 처럼 인증서와 개인키를 모두 Export 시킨다. 이때 이름은 push.p12로 한다.

인증서 파일을 PEM 타입으로 변환

pkcs12 타입은 개인키, 공개키, 인증서를 모두 담을 수 있는 포멧이지만 대부분의 push library들을 PEM 타입을 선호 한다. 이 과정은 포멧 변경 작업이니 다른 포멧을 사용한다면 이 과정은 불필요하다.

인증서 파일 생성

 $ openssl pkcs12 -clcerts -nokeys -out push-cert.pem -in push.p12

push.p12파일에서 인증서 부분만 뽑아서 push-cert.pem로 뽑는다. openssl은 첫번째 파라미터로 포멧이름을 받고 이후에 옵션들을 입력한다. -clcerts는 인증서 중에 클라이언트 인증서만 그리고 -nokeys 옵션은 개인키는 무시한다는 내용이다.

개인키 파일 생성 ( 암호화된 )

 $ openssl pkcs12 -nocerts -out key.pem -in push.p12

이제 개인키는 뽑아보다. 역시 pkcs12 포멧이기 때문에 첫번째 파라미터로 pkcs12를 넣고 이번에는 -nocerts로 인증서를 무시하고 key.pem으로 개인키를 뽑는다. 이때 개인키에 암호를 걸게 되어 있는데 이것을 다음 명령을 통해서 제거할 것이다.

개인키에서 암호 제거

 $ openssl rsa -in key.pem -out push-key.pem

앞에서 뽑은 key.pem에서 암호를 제거한다. 제거된 키는 push-key.pem으로 저장될 것이다.

이상으로 openssl을 이용해서 인증서와 개인키를 파일을 만드는 방법을 알아보았다. 앞서서도 설명했드시 이것은 APNS서버에 메시지를 보내는 서버가 개인키, 인증서를 사용하는 형태에 따라서 달라질 수 있다.

참고


[출처] http://10apps.tistory.com/59