이번에는 iOS Push APNS 인증서 만드는 방법에 대해서 알아보도록 하겠습니다.

우선 가장 중요한 것은 애플 개발자 등록(1년 129,000원)이 되어있어야만 가능합니다. 

이 자격에 해당되시는 분들은 아래를 따라하여 .pem파일을 만들어보도록 하겠습니다.




APNS 인증서 발급을 위한 개인 인증서 만들기


우선 런치패드를 실행하여 기타를 누르고 키체인 접근 아이콘을 눌러 실행합니다.


키체인 접근이 실행 되었다면 메뉴에 키체인 접근 > 인증서 지원 > 인증기관에서 인증서 요청.... 을 선택합니다.


이메일 주소를 입력하고 계속을 눌러 진행합니다.


파일을 어디에 저장할 것인지 선택 후 저장을 합니다.


암호화 알고리즘을 다음과 같이 선택 후 계속을 누릅니다.


다음과 같이 하였으면 CertificateSigningRequest.certSigningRequest 파일이 생성되었습니다.

이 인증서는 Notification 인증서를 발급받을 때 반드시 필요하니 가지고 있어야 합니다.




Notification 인증서 발급 받기


이제 개인 인증서를 만들었으니 애플 개발자 사이트로 이동합니다.


로그인을 하게되면 OverView > Certificates, Identifiers & Profiles 을 클릭하여 이동합니다.


좌측에 보면 Identifiers > App IDs 항목을 선택하고 Notification 인증서를 받고 싶은 앱 아이디를 선택합니다.


아래 쪽에 내리면 Push Notifications 항목이 Enable이 되도록 인증서를 발급 받아줍니다. Edit 버튼을 눌러주세요.

 

아래로 내리다 보면 Push Notifications > Development SSL Certificate > Create Certificate 를 클릭합니다.

개발용과 배포용으로 만들 수 있습니다. 저는 개발용으로 만들어 보도록 하겠습니다.


Continue 버튼을 눌러 계속 진행합니다.


Choose File을 선택하여 아까 만들었던 개인 인증서 CertificateSigningRequest.certSigningRequest 파일을 선택합니다. 

그리고 Continue 눌러 다음 단계로 넘어갑니다.


Notifications 인증서가 발급된 것을 확인 할 수 있습니다. Download 버튼을 눌러 다운로드 받고 인증서를 실행합니다.




APNS 서버 인증서 만들기


다시 키체인을 열어서 인증서를 만들었던 앱 아이디를 찾아서 선택합니다.

여기서 중요한 것은 

1. Apple Development iOS Push Services: com.selvasai.objc 항목

2. Key 아이콘 항목

총 2개의 항목을 선택하여 오른쪽 마우스를 눌러 2개 항목 내보내기를 선택합니다.


apns-cert 이름을 적고 저장합니다. 이름은 마음대로 정해도 되지만, 추후 작업을 위해 이름을 따라해주세요.


암호를 입력합니다.


다시 키체인으로 돌아와서 이번엔 밑에 있는 Key 아이콘만 선택하고 내보내기를 누릅니다.


apns-key 이름을 적고 저장합니다. 이름은 마음대로 정해도 되지만, 추후 작업을 위해 이름을 따라해주세요.


암호를 입력합니다.

다음과 같이 진행하면 apns-cert.p12, apns-key.p12 파일이 생성 됩니다. 두 파일을 하나의 폴더에 넣고 터미널을 실행시켜 폴더로 이동합니다.

(Tip: 터미널을 실행시킨 후 cd 입력 후 폴더를 마우스로 드래그하여 터미널에 놓으면 알아서 경로가 들어갑니다.)



apns-key-enc.pem 파일 만들기


터미널을 실행시켜 .p12 파일이 있는 곳으로 이동합니다.


다음 명령어를 입력하여 apns-cert.pem 파일을 생성합니다.

openssl pkcs12 -clcerts -nokeys -out apns-cert.pem -in apns-cert.p12

명령어를 입력하면 비밀번호를 입력하라고 나옵니다. 아까 .p12 파일을 만들 때 입력했던 비밀번호를 입력합니다.


다음 명령어를 입력하여 apns-key.pem 파일을 생성합니다.

openssl pkcs12 -nocerts -out apns-key.pem -in apns-key.p12

명령어를 입력하면 비밀번호를 입력하라고 나옵니다. 아까 .p12 파일을 만들 때 입력했던 비밀번호를 입력합니다.


다음 명령어를 입력하여 apns-key-noenc.pem 파일을 생성합니다.

openssl rsa -in apns-key.pem -out apns-key-noenc.pem

명령어를 입력하면 비밀번호를 입력하라고 나옵니다. 아까 .p12 파일을 만들 때 입력했던 비밀번호를 입력합니다.


다음 명령어를 입력하여 apns-key-enc.pem 파일을 생성합니다.

cat apns-cert.pem apns-key-noenc.pem > apns-key-enc.pem


마지막 부분에 apns-key-enc.pem이라고 적어놓은 부분은 만들고 싶은 이름으로 변경해서 작성해주셔도 됩니다. 


다음과 같이 6개의 파일이 있는 것을 확인 할 수 있습니다. 이제 모든 것이 끝났습니다. 


apns-key-enc.pem 파일을 하나 만들고자 이 작업들을 진행했던 것이었습니다.

이제 Push 서버로 구성할 곳으로 apns-key-enc.pem 파일을 업로드 해주시면 됩니다.

위치는 아무 곳이나 하셔도 상관없지만 다운로드가 가능한 웹루트는 피하시는 것을 권장합니다.

이렇게 만들어진 인증서를 이용해 SSL Connect의 연결을 유지한 상태에서 Push 메시지를 발송하면 됩니다.


지금까지 iOS Push APNS 인증서 만드는 방법에 대해서 알아보았습니다. 수고하셨습니다.