Cách tạo iOS Push Certificate

Chú ý: Tài liệu kỹ thuật này dành cho nhà phát triển (developer)

1. Yêu cầu

Bạn cần có 1 tài khoản Apple Developer Account với quyền quản trị (Admin Role).

Bạn cần có 1 máy tính Apple cài hệ điều hành Mac OS X.

2. Tạo Certificate Request

2.1. Mở Keychange Access trên máy Mac OS X của bạn. Ứng dụng này nằm trong phần "Applications -> Utilities -> Keychain Access"

2.2. Từ menu Keychain Access, chọn mục "Request a Certificate From a Certificate Authority" như hình bên dưới.

2.3. Ở cửa sổ hiện ra như bên dưới, bạn chỉ cần nhập vào emailở mục User Email Address, sau đó chọn Saved to disk ở phần tùy chọn và nhấp "Continue", lúc này bạn sẽ nhận được 1 tệp "Certificate Signing Request", hãy lưu nó ở dưới máy để sử dụng ở phần tiếp theo.

3. Bật Push Notification và áp dụng "Certification Request" để tạo Push Certificate

3.1. Đăng nhập vào trang Apple Developer Account sử dụng tài khoản Apple Developer của bạn.

3.2. Đi tới mục "Certificates, IDs & Profiles -> Identifiers".

3.3. Cuộn xuống bên dưới và tích vào ô Push Notifications. Chú ý không nhấp vào nút bấm Edit.

3.4. Di chuyển tới phần "Create a New Certificate" phía dưới và tích vào tùy chọn " Apple Push Notification service SSL (Sandbox & Production)" trong danh mục Services. Sau đó nhấp vào nút bấm "Continue" để tiếp tục.

3.5. Tiếp theo, ở ô App ID, bạn hãy chọn đúng ID của ứng dụng mà bạn muốn áp dụng Push Notification. Sau đó nhấp vào nút bấm "Continue" để chuyển bước kế tiếp.

3.6. Bây giờ, bạn hãy nhấp chuột vào "Choose File..." và chọn tệp tin CertificateSigningRequest mà bạn đã lưu ở phần trên. Sau đó tiếp tục nhấp vào "Continue" để tiếp tục.

3.7. Nhấp vào nút bấm "Download" để lưu certificate (có đuôi mở rộng là .cer) về máy.

4. Tạo một Private Key cho Push Notification.

4.1. Nhấp đúp chuột vào file .cer mà bạn vừa Download ở trên.

4.2. Sau vài giây, ứng dụng Keychain Access sẽ được mở ra, bạn hãy chọn mục Login -> My Certificates ở bên trái cửa sổ ứng dụng. Sau đó nhấp chuột phải vào dòng Certificate của bạn ở bên phải và chọn "Export". Nếu có hộp thoại hiện ra yêu cầu bạn đặt mật khẩu cho tệp tin được Export ra thì bạn cứ để trống và nhấp OK để tiếp tục nhé.

4.3. Sau khi Export, bạn sẽ nhận được tệp tin với đuôi mở rộng là .p12 . Bạn hãy lưu lại tệp này với tên là Certificates_cert.p12.

4.4. Tiếp tục, bạn hãy nhấp chuột vào mũi tên ở đầu dòng Certificate của bạn để mở rộng danh sách bên trong. Tiếp đó, bạn nhấp chuột phải vào tên tài khoản Apple Developer có biểu tượng hình chìa khóa, rồi sau đó chọn Export. Chú ý: Khi export, sẽ có hộp thoại yêu cầu bạn đặt mật khẩu cho tệp tin, bạn hãy đặt mật khẩu là "123456" để thuận tiện cho bước kế tiếp.

4.5. Sau khi Export, bạn sẽ lại nhận được một tệp tin nữa với đuôi mở rộng là .p12 . Bạn hãy lưu lại tệp này với tên là Certificates_key.p12 để sử dụng ở phần kế tiếp nhé.

5. Chuyển đổi định dạng từ .p12 sang .pem để sử dụng trên Pushdy.

5.1. Mở cửa sổ Terminal, di chuyển tới thư mục chứa 2 tệp tin Certificates_cert.p12 và Certificates_key.p12. Nhập vào các dòng lệnh dưới đây.

openssl pkcs12 -clcerts -nokeys -out apns-cert.pem -in Certificates_cert.p12
# enter để bỏ qua bước nhập mật khẩu
openssl pkcs12 -nocerts -out apns-key.pem -in Certificates_key.p12
# nhập vào mật khẩu 123456 khi được hỏi và ấn Enter
openssl rsa -in apns-key.pem -out apns-key-no-pass.pem
# nhập vào mật khẩu 123456 khi được hỏi và ấn Enter
cat apns-cert.pem apns-key-no-pass.pem > apns-final.pem

5.2. Kiểm tra xem tệp tin .pem có hợp lệ không bằng lệnh bên dưới. Nếu kết quả trả về có dòng chữ "Expecting: TRUSTED CERTIFICATE" tức là bạn đã tạo file .pem thành công.

Môi trường production:

openssl s_client -connect gateway.push.apple.com:2195 -cert apns-final.pem -key apns-key.pem

Môi trường sandbox:

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-final.pem -key apns-key.pem

5.3. Bạn lưu lại tệp apns-final.pem để sử dụng upload lên Pushdy Dashboard. Chi tiết xem tại đây.