Tạo tệp .pem được sử dụng để thiết lập Thông báo đẩy của Apple


290

Tôi đã thử và cố gắng tạo tệp .pem, mỗi lần tạo chứng chỉ từ tài khoản của khách hàng và sau đó tạo tệp .pem bằng thiết bị đầu cuối, nhưng nó không có tác dụng. Bất cứ ai cũng có thể đưa ra một thủ tục từng bước?

Câu trả lời:


936

Để bật Thông báo đẩy cho ứng dụng iOS của bạn, bạn sẽ cần tạo và tải lên Chứng chỉ thông báo đẩy của Apple (tệp .pem) cho chúng tôi để chúng tôi có thể kết nối với Apple Push Server thay mặt bạn.

( Phiên bản cập nhật với ảnh chụp màn hình được cập nhật tại đây )

Bước 1: Đăng nhập vào Cổng cung cấp iOS, nhấp vào "Chứng chỉ" trên thanh điều hướng bên trái. Sau đó, nhấp vào nút "+".

nhập mô tả hình ảnh ở đây

Bước 2: Chọn tùy chọn SSL Dịch vụ thông báo đẩy (Sản xuất) của Apple trong phần Phân phối, sau đó nhấp vào nút "Tiếp tục".

nhập mô tả hình ảnh ở đây

Bước 3: Chọn ID ứng dụng bạn muốn sử dụng cho ứng dụng BYO của mình (Cách tạo ID ứng dụng), sau đó nhấp vào "Tiếp tục" để chuyển sang bước tiếp theo.

nhập mô tả hình ảnh ở đây

Bước 4: Thực hiện theo các bước "Giới thiệu về Yêu cầu ký chứng chỉ (CSR)" để tạo Yêu cầu ký chứng chỉ.

nhập mô tả hình ảnh ở đây

Để bổ sung hướng dẫn được cung cấp bởi Apple. Dưới đây là một số ảnh chụp màn hình bổ sung để hỗ trợ bạn hoàn thành các bước cần thiết:

Bước 4 Ảnh chụp màn hình bổ sung 1: Điều hướng đến Trợ lý chứng chỉ của Truy cập Keychain trên máy Mac của bạn.

nhập mô tả hình ảnh ở đây

Bước 4 Ảnh chụp màn hình bổ sung 2: Điền thông tin chứng chỉ. Nhấp vào Tiếp tục.

nhập mô tả hình ảnh ở đây

Bước 5: Tải lên tệp ".certSigningRequest" được tạo ở Bước 4, sau đó nhấp vào nút "Tạo".

nhập mô tả hình ảnh ở đây

Bước 6: Nhấp vào "Xong" để hoàn tất đăng ký, Trang Cổng thông tin cung cấp iOS sẽ được làm mới trông giống như màn hình sau:

nhập mô tả hình ảnh ở đây

Sau đó nhấp vào nút "Tải xuống" để tải xuống chứng chỉ (tệp .cer) bạn vừa tạo. - Nhấp đúp vào tệp đã tải xuống để cài đặt chứng chỉ vào Keychain Access trên máy Mac của bạn.

Bước 7: Trên máy Mac của bạn, hãy chuyển đến "Keychain", tìm kiếm chứng chỉ bạn vừa cài đặt. Nếu không chắc chắn chứng chỉ nào là đúng, chứng chỉ sẽ bắt đầu bằng "Dịch vụ đẩy iOS sản xuất của Apple:" kèm theo ID gói ứng dụng của bạn.

nhập mô tả hình ảnh ở đây

Bước 8: Mở rộng chứng chỉ, bạn sẽ thấy khóa riêng với tên của bạn hoặc tên công ty của bạn. Chọn cả hai mục bằng cách sử dụng phím "Chọn" trên bàn phím, nhấp chuột phải (hoặc nhấp chuột cmd nếu bạn sử dụng chuột một nút), chọn "Xuất 2 mục", như Dưới đây:

nhập mô tả hình ảnh ở đây

Sau đó lưu tệp p12 có tên "pushcert.p12" vào Màn hình của bạn - bây giờ bạn sẽ được nhắc nhập mật khẩu để bảo vệ nó, bạn có thể nhấp Enter để bỏ qua mật khẩu hoặc nhập mật khẩu bạn muốn.

Bước 9: Bây giờ là phần khó nhất - mở "Terminal" trên máy Mac của bạn và chạy các lệnh sau:

cd
cd Desktop
openssl pkcs12 -in pushcert.p12 -out pushcert.pem -nodes -clcerts

Bước 10: Xóa Pushcert.p12 khỏi Desktop để tránh tải lên sai để xây dựng khu vực của riêng bạn. Mở "Terminal" trên máy Mac của bạn và chạy các lệnh sau:

cd
cd Desktop
rm pushcert.p12

Bước 11 - CẬP NHẬT AWS MỚI: Tạo mới pushcert.p12để gửi tới AWS SNS. Nhấp đúp chuột vào cái mới pushcert.pem, sau đó chỉ xuất một cái được tô sáng trên màu xanh lá cây.

nhập mô tả hình ảnh ở đây Tín dụng: Cập nhật mới AWS

Bây giờ bạn đã tạo thành công Chứng chỉ thông báo đẩy của Apple (tệp .p12)! Bạn sẽ cần phải tải tệp này lên khu vực Build Your own của chúng tôi sau này. :)


11
Có vẻ như bây giờ bạn có thể xuất trực tiếp từ Keychain sang tệp PEM (bước 8-10).
Kyle Clegg

10
@KyleClegg: thế nào?
eugene

3
Khu vực "Xây dựng riêng của bạn" là gì và tại sao chúng ta phải tải tệp pem lên nó?
Rafi

1
Tại sao tất cả các câu trả lời trên internet bỏ qua câu hỏi thực sự liên tục được hỏi về 'Xây dựng của riêng bạn' là gì? Bạn tải PEM này ở đâu nếu sử dụng Xcode?
RobertyBob

1
Trong trường hợp của tôi, tôi cần tạo hai tệp pem từ chứng chỉ p12. Chỉ cần xuất chứng chỉ và tệp khóa tương ứng trong truy cập móc khóa thay vì xuất 2 mục cùng nhau. Nhưng câu trả lời này chắc chắn là tuyệt vời!
wei

79

Có giải pháp đơn giản hơn nhiều ngày nay - pem . Công cụ này làm cho cuộc sống dễ dàng hơn nhiều.

Ví dụ: để tạo hoặc gia hạn chứng chỉ thông báo đẩy của bạn, chỉ cần nhập:

fastlane pem 

và nó được thực hiện trong vòng một phút. Trong trường hợp bạn cần chứng chỉ hộp cát, hãy nhập:

fastlane pem --development

Và nó thật đẹp.


9
Và không chỉ có PEM. Toàn bộ công cụ fastlane tuyệt vời tuyệt vời
Benjamin

Nó cũng có sẵn cho các hệ thống không táo?
hai lần

@KrauseFx, nếu tôi tạo nó thông qua pem, làm thế nào để tôi hiển thị nó ở đây: developer.apple.com/account/ios/certert ? Tôi thấy điều này khá hữu ích để xem ngày hết hạn mới nhất vv? Đây có phải là một cái gì đó xảy ra tự động?
IonicBurger

1
@Nikola Không cần thực hiện hành động nào trên iTunes Connect, bạn có thể sử dụng tệp pem đó ngay lập tức
KrauseFx

1
@mikejd chúng tôi không cần chỉ định p12 nào nên được sử dụng cho pem?
Maulik

10
$ cd Desktop
$ openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem

Nó có hoạt động không? Tôi đã tạo tệp PEM trên windows 10 bằng phương pháp này, nhưng tôi nhận được "Không thể kết nối với 'ssl: \ / \ / gateway.sandbox.push.apple.com" khi tôi sử dụng pem được tạo để gửi thông báo đẩy.
Arivan Bastos

3

Apple đã thay đổi tên của chứng chỉ được cấp. Bây giờ bạn có thể sử dụng cùng một chứng chỉ cho cả phát triển và sản xuất. Mặc dù bạn vẫn có thể yêu cầu chứng chỉ chỉ phát triển nhưng bạn không còn có thể yêu cầu chứng chỉ chỉ sản xuất.

vui lòng xem dưới đây


1

nó rất đơn giản sau khi xuất ra cert.p12 và key.p12, vui lòng tìm lệnh bên dưới để tạo tệp 'apns' .pem.

https://www.sslshopper.com/ssl-converter.html

command to create apns-dev.pem from Cert.pem and Key.pem

    

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

    

cat Cert.pem apns-dev-key-noenc.pem > apns-dev.pem

Lệnh trên hữu ích cho cả Sandbox và Sản xuất.


1

Theo khắc phục sự cố vấn đề chứng chỉ đẩy

Chứng chỉ SSL có sẵn trong tài khoản Chương trình nhà phát triển Apple của bạn chứa khóa chung nhưng không phải là khóa riêng. Khóa riêng chỉ tồn tại trên máy Mac đã tạo Yêu cầu ký chứng chỉ được tải lên Apple. Cả khóa công khai và khóa riêng đều cần thiết để xuất tệp Thư tăng cường bảo mật (PEM).

Có thể lý do bạn không thể xuất PEM hoạt động từ chứng chỉ do khách hàng cung cấp là bạn không có khóa riêng. Chứng chỉ chứa khóa chung, trong khi khóa riêng có lẽ chỉ tồn tại trên máy Mac đã tạo CSR gốc.

Bạn có thể:

  1. Hãy thử lấy khóa riêng từ máy Mac đã tạo CSR ban đầu. Việc xuất PEM có thể được thực hiện từ máy Mac đó hoặc bạn có thể sao chép khóa riêng sang máy Mac khác.

hoặc là

  1. Tạo CSR mới, chứng chỉ SSL mới và lần này sao lưu khóa riêng.

0

Cảm ơn! cho tất cả các câu trả lời trên. Tôi hy vọng bạn có một tập tin .p12. Bây giờ, mở terminal viết lệnh sau. Đặt thiết bị đầu cuối vào đường dẫn nơi bạn đã đặt tệp .12.

$ openssl pkcs12 -in yourCertifcate.p12 -out pemAPNSCert.pem -nodes
Enter Import Password: <Just enter your certificate password>
MAC verified OK

Bây giờ tệp .pem của bạn được tạo.

Xác minh tệp .pem Trước tiên, hãy mở .pem trong trình chỉnh sửa văn bản để xem nội dung của nó. Nội dung chứng chỉ phải ở định dạng như dưới đây. Đảm bảo tệp pem chứa cả nội dung Chứng chỉ (từ BEGIN CHỨNG NHẬN đến CHỨNG NHẬN KẾT THÚC) cũng như Khóa riêng Chứng chỉ (từ BEGIN PRIVATE KEY đến END PRIVATE KEY):

> Bag Attributes
>     friendlyName: Apple Push Services:<Bundle ID>
>     localKeyID: <> subject=<>
> -----BEGIN CERTIFICATE-----
> 
> <Certificate Content>
> 
> -----END CERTIFICATE----- Bag Attributes
>     friendlyName: <>
>     localKeyID: <> Key Attributes: <No Attributes>
> -----BEGIN PRIVATE KEY-----
> 
> <Certificate Private Key>
> 
> -----END PRIVATE KEY-----

Ngoài ra, bạn kiểm tra tính hợp lệ của chứng chỉ bằng cách truy cập Bộ giải mã chứng chỉ SSLShopper và dán Nội dung chứng chỉ (từ BEGIN CERTIFICATE đến END CERTIFICATE) để có được tất cả thông tin về chứng chỉ như dưới đây:

nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.