반응형

인증서를 잘 만들었으나 자바를 통해 아이폰 푸시 모듈을 보낼 때 언제부턴가 푸시가 나가지 않기 시작함(2015년)

웹상에 유사한 사례들도 확인이 가능했음.

원인으로 지목된 자바 버전을 1.6으로 내리면 정상동작한다 하지만 자바를 잘 모르기에 자바 개발자의 말로는 내려도 안된다 함. <- 확실하지 않음

하여 인증서 자체를 커맨드를 통해 openssl 명령어로 생성할 경우 정상 발송이 됨


방법


APNS 인증서 발급 방법은 기본이라 생략하고

혹시나 필요한 사람은 카카오톡 푸시 서비스에 상세히 나와 있으니 해당 가이드 참고

링크 :  https://developers.kakao.com/docs/ios#푸시-알림-설정하기-APNS-인증서-발급


인증서까지 발급 받았고 키체인에서 p12파일 생성까지 끝냈다는 가정하에  진행함

(다만 인증서 발급 순서가 헷갈리는게 있어서 일단 순서는 푸시 인증서 다운로드 후 더블클릭하여 키체인에 등록 후 프로비저닝을 나중에 다운받아 더블클릭하여 Xcode에 추가함으로 규정하는게 속편하고 안헷갈림.)


1.애플개발자센터에서다운받은.cer파일과 해당 cer파일을 내보내기하여 생성된 p12파일을 하나의 폴더에 복사

2.터미널 실행

3.터미널의 프롬프트 위치를 1번의 파일이 있는 위치로 디렉토리 이동

4.터미널에서 붉은색 폰트만 실제 파일 이름으로 변경하여 한줄씩 실행

openssl x509 -in 애플개발자센터에서다운받은.cer -inform DER -out aps_production.pem -outform PEM

openssl pkcs12 -nocerts -in 키체인에서생성한.p12 -out mykey.pem

openssl pkcs12 -export -inkey mykey.pem -in aps_production.pem -out 최종결과.p12


참고로  애플 개발자 센터에서 각각의 푸시 인증서를 다운받으면 개발용은 aps_development.cer, 실서비스용은 aps.cer 파일명으로 다운로드 되므로 

개발용은 이렇게

openssl x509 -in aps_development.cer -inform DER -out aps_production.pem -outform PEM

openssl pkcs12 -nocerts -in 인증서.p12 -out mykey.pem

openssl pkcs12 -export -inkey mykey.pem -in aps_production.pem -out 최종결과.p12


실서비스용은 이렇게 

openssl x509 -in aps.cer -inform DER -out aps_production.pem -outform PEM

openssl pkcs12 -nocerts -in 인증서.p12 -out mykey.pem

openssl pkcs12 -export -inkey mykey.pem -in aps_production.pem -out 최종결과.p12


미리 만들어 두고 카피 페이스트 하면 편함 "




암호 입력을 요구하면 입력, 입력을 반복하면 명령 프롬프트가 완료됨

다 끝나면 최종결과.p12 파일이 생성됨. 

해당 p12파일로 푸시를 보내면 됨



예시 : 명령어에 따라 암호를 물어보는 명령어가 있고 그냥 넘어가는 명령어를 알 수 있음


명령어 실행전엔 aps.cer과 mykey.p12 파일만 존재하였으나 실행 후 다른 파일들과 함께 최종 결과물인 iphone_pro.p12파일이 생성됨을 확인할 수 있음



반응형
Posted by Hippalus
,