p8
p8 là gì?
p8 là kiểu key dùng để xác thực dựa trên token của Apple cho việc Push Notification, key với phần mở rộng .p8. Các công ty đã và đang bắt đầu sử dụng p8 thay cho p12 (pem) vì sự tiện lợi của p8.
Token-based (p8) giúp cho việc kết nối đến APNs là stateless. Kết nối kiểu stateless giúp cho việc trao đổi thông tin nhanh hơn certificate-based vì không cần phải tra cứu chứng chỉ số (certificate) và các thông tin khác liên quan đến máy chủ truyền tin (máy chủ dùng để push notification).
Xác thực p8 (tokenbased) có các ưu điểm
- Sử dụng chung token cho nhiều máy chủ provider (máy chủ push notification)
- Sử dụng 1 token để truyền thông báo đến tất cả các ứng dụng thuộc công ty bạn.
Với xác thực bằng chứng chỉ số (certificate-based) thì mỗi ứng dụng cần 1 chứng chỉ số khác nhau.
Tuy nhiên cũng có các khuyết điểm
- Vì mỗi request đều mang theo token nên request sẽ nặng hơn 1 chút
- Phải cập nhật và mã hoá token mỗi giờ.
Tạo p8 ở Appler Developer Portal
Danh sách Key ở đây https://developer.apple.com/account/resources/authkeys/list
Khi tạo p8 bạn tuyệt đối phải cất giữ cẩn thận Key ID và file token p8.
Định dạng (format) p8
File .p8 sẽ có định dạng text với cấu trúc như bên dưới
-----BEGIN PRIVATE KEY----- MIIFDzA5BgkqhkiG9w0BBQ0wLDAbBgkqhkiG9w0BBQwwDgQI4UeTILlboQICAggA MA0GCWCGSAFlAwQBAQQABIIE0PxfgF3NgaZqTXfGwYXbwpV/O98NhmohH6aONsvt XdMFVNfAa5UxrXUBH2IPD1ODKdlxUfkdN3gjav5lBJYZjnoQ0r6IZaWOOcmm1YZp 4sxM4RNLvWi2OuGWvX6FpWHrh/bbf1LL6VcWU ......... 4vBgxdFEeg4iA6dsqUny0XiPg1Oi97go9TDvF8fzS9jf6c/QhNaUIKG7Qd9XodGk v3iBrnxbl5+ZpEnEB9B3AflA19ilHai5DHzgq3F8d7pUbGeRceufqS/ovZVeSK9K Hmt10c0SjOFd35woOeW+u54Q8aKB8Ueg2OsbanH/aY9AEp1IETz+kl+LDsuga4hC hPSZ -----END PRIVATE KEY-----
Bạn có thể tạo thử file p8 bằng lệnh sau:
openssl genrsa | openssl pkcs8 -topk8 -v2 aes-128-ecb -out cert.p8
Tham khảo
https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/establishing_a_token-based_connection_to_apns