Search
🔐

APNs 인증서 만들기

현재 APNs 인증서를 만드는 방식은 두가지가 있습니다.
p12 → 1년마다 갱신 (개발용 : 365일, 배포용 : 395일)
p8 → 갱신 없이 영구적으로 사용 가능
필요에 따라 두 방식 중 선택해 사용하면 됩니다.

p8 인증서 발급 방법

1.
개발자 페이지 (developer.apple.com) 로그인
2.
Account 메뉴 진입
3.
인증서 메뉴 진입
4.
Keys 진입 후 + 버튼 클릭
5.
적당한 이름을 입력합니다.
6.
등록
7.
반드시! 꼭! 다운로드합니다. (1회만 다운로드 가능)
8.
알수 있는 곳에 잘 보관해둡니다.
9.
pem 확장자로 변경합니다. (변경할 필요가 없다면 14번으로 이동합니다.)
10.
터미널을 실행합니다.
11.
p8 인증서가 보관된 폴더로 이동합니다.
12.
아래 명령어를 입력합니다.
// 암호화된 경우 openssl pkcs8 -nocrypt -in AuthKey파일명.p8 -out AuthKey.pem // 암호화가 안된 경우 openssl pkcs8 -in AuthKey파일명.p8 -out AuthKey.pem
Swift
복사
13.
p8 인증서가 보관된 폴더에 AuthKey.pem 파일이 생성되었는지 확인합니다.
14.
필요에 따라 서버팀에 p8 또는 pem 파일을 전달합니다.

p12 인증서 발급 방법

1.
키체인 접근 앱을 실행합니다.
2.
상단 메뉴에서 인증서 지원 - 인증기관에서 인증서 요청 을 선택합니다.
3.
대표 이메일 주소를 넣고 스샷과 같이 선택합니다.
4.
이 파일 역시 알 수 있는 곳에 저장합니다.
5.
계속을 눌러 과정을 완료합니다.
6.
애플 개발자 페이지에 접속해 Certificates 메뉴를 선택합니다.
g.
하단 Service 섹션에서 Apple Push Notification service SSL (Sandbox & Production) 을 선택합니다.
h.
적용할 앱을 선택합니다.
i.
1~5 에서 만든 CertificateSigningRequest.certSigningRequest 파일을 업로드합니다.
j.
만들어진 파일을 다운로드합니다.
k.
다운로드한 파일을 더블클릭 해 실행합니다. (자동으로 키체인에 등록됩니다.)
l.
키체인 접근 을 실행해 추가한 APNs 인증서를 확인합니다.
m.
두개의 항목을 선택해 내보내기 합니다.
14. 적당한 이름을 등록합니다.
15.
필요하다면 암호도 넣어줍니다.
16.
아래 키 항목만 따로 한번 더 내보내 줍니다. (pem 파일을 만들때 씁니다. p12 파일만 쓴다면 안해도 됩니다.)
17.
같은 방식으로 이름과 패스워드을 입력해줍니다.
a.
이 문서에서는 Push_Cert_Key.p12 로 이름지었습니다.

p12 파일들로 pem 파일 만들기

1.
터미널을 실행합니다.
2.
인증서 파일이 저장된 폴더로 이동합니다.
3.
아래 명령어를 입력합니다.
// 'Push_Cert'는 아까 저장한 파일이름 openssl pkcs12 -clcerts -nokeys -out apns_cert.pem -in Push_Cert.p12
Swift
복사
4.
패스워드을 입력하고 나면 apns_cert.pem 파일이 만들어집니다.
5.
두번째 만든 ooo_Key.p12 파일에 대해 아래 명령어를 입력합니다.
// 'Push_Cert_Key'는 두번째로 만든 파일 이름 openssl pkcs12 -nocerts -out apns_key.pem -in Push_Cert_Key.p12
Swift
복사
6.
패스워드는 총 3번을 입력하게 됩니다.
a.
Push_Cert_Key.p12 의 패스워드
b.
새로 만들 pem 파일의 패스워드
c.
패스워드 확인
7.
apns_key.pem 파일이 만들어집니다.
8.
아래 명령어를 통해 apns_key.pem 파일을 rsa 암호화된 pem으로 변환시켜 줍니다.
openssl rsa -in apns_key.pem -out apns_key_noenc.pem
Swift
복사
9.
apns_key.pem파일의 패스워드까지 입력하고 나면 apns_key_noenc.pem 파일이 만들어집니다.
10.
이제 아래 명령어를 통해 apns_cert.pemapns_key_noenc.pem 을 합쳐줍니다.
cat apns_cert.pem apns_key_noenc.pem > apns.pem
Swift
복사
11.
apns.pem 파일이 만들어집니다.
12.
해당 파일을 서버팀에 전달하면 됩니다.
감사합니다.