2012-09-13 32 views
10

Khi bạn cần tạo chứng chỉ mới cho APNS, Trình hướng dẫn Cung cấp "luôn cung cấp các bước để tạo CSR mới có nghĩa là bạn cũng cần phải tạo khóa công khai/riêng tư mới. Chúng có thể bắt đầu mất kiểm soát, vì vậy có cách nào để tạo một CSR (Yêu cầu ký mã) trong Keychain Access từ khóa cá nhân hiện có thay vì phải tạo một khóa mới mỗi lần không?Truy cập CSX Keychain Tạo CSR từ Khóa Riêng tư cho APNS (Dịch vụ Thông báo Đẩy của Apple)

Cảm ơn

Trả lời

2

Khi bạn đi vào Cung cấp hồ sơ để Enable/Configure Đẩy Thông báo, điều đầu tiên nó yêu cầu là một CSR (Mã số Ký Giấy chứng nhận).

Bạn có thể tạo điều này bằng khóa riêng hiện có riêng tư từ Keychain Access thay vì tạo khóa mới.

Chỉ cần mở truy cập keychain và sau đó cuộn qua và tìm một phím PRIVATE trước đó (có thể được gọi là TÊN CỦA BẠN) và sau đó nhấp chuột phải (nhấp hai ngón tay) vào nó và chọn Yêu cầu chứng chỉ từ tổ chức phát hành chứng chỉ với "bla bla bla ".

Tôi chỉ cần nhập cùng một địa chỉ email trong cả Địa chỉ email người dùng và Địa chỉ email CA và chọn Lưu vào đĩa.

Sau đó tải lên đó để tạo ra file cer của bạn

+2

tôi đã làm tương tự như trên đề nghị nhưng Lỗi xảy ra: ("Không thể tìm thấy mục được chỉ định trong Keychain". Vấn đề có thể là gì? –

+0

Cùng một vấn đề ở đây, nhưng tôi biết một thực tế tôi đã có nó làm việc đôi khi năm ngoái ... vì vậy táo đã phá vỡ một cái gì đó trong một trong những cập nhật ngẫu nhiên của họ ..? – Captnwalker1

+1

@ mysticboy59 Xem câu hỏi này để biết chi tiết về lỗi này: http://stackoverflow.com/questions/16845169/error-when-trying-to-obtain-a-certificate-the-specified-item-could-not-be- tìm thấy –

26

Thông thường, bạn có thể làm điều này bằng cách kích chuột phải vào một khóa bí mật tồn tại trong Keychain Access và chọn Yêu cầu một chứng chỉ từ một Certificate Authority Với "tên của Key của bạn ".

Thật không may, điều này sẽ không thành công với "Không thể tìm thấy mục được chỉ định trong Keychain" trừ khi bạn cũng có khóa công khai tương ứng trong keychain của bạn. Không có lý do kỹ thuật nào cho việc này — yêu cầu ký chứng chỉ (CSR) chỉ có thể được tạo từ khóa riêng tư — nhưng Keychain Access không hiểu điều này.

Bạn có hai tùy chọn.

Xuất các khóa bí mật và tạo ra CSR bằng tay

Đây là một lựa chọn nhanh chóng mà chỉ sẽ tạo ra một CSR mà bạn có thể tải lên Apple.

  1. Chọn khóa riêng trong Keychain Access, sau đó nhấp vào file - mặt hàng xuất khẩu ....
  2. Lưu tệp ở định dạng .p12 ở đâu đó, nhưng hãy nhớ đường dẫn. Những hướng dẫn này giả định rằng nó nằm trong thư mục chính của bạn và được gọi là exported.p12. Để trống mật khẩu.
  3. Mở Terminal và nhập:

    openssl req -new -key <(openssl pkcs12 -in ~/exported.p12 -nocerts -nodes -passin pass:"") > new.certSigningRequest 
    

    Xem [1] ở phần cuối của bài viết này để biết chi tiết về những gì đang xảy ra.

  4. Nhấn Enter cho từng lời nhắc (Apple không quan tâm đến các giá trị này). Khi bạn hoàn tất, bạn sẽ có .certSigningRequest phù hợp để tải lên Cổng thông tin nhà phát triển Apple.Khi bạn tải xuống chứng chỉ được liên kết, nó sẽ ghép nối với khóa riêng ban đầu.

  5. Xóa tệp exported.p12 vì nó chứa tài liệu khóa riêng tư.

Tái khóa công khai để Keychain Access là hạnh phúc

Tùy chọn này là một sửa chữa dài hạn mà sẽ cho phép bạn tạo CSR từ chìa khóa gốc trực tiếp từ Keychain Access. Các hướng dẫn này giả sử bạn hiện không thể sử dụng Keychain Access để làm như vậy vì bạn đang thiếu phiên bản công khai tương ứng của khóa riêng tư của mình. Bạn có thể kiểm tra điều này bằng cách vào danh mục "Keys" trong Keychain Access và tìm kiếm một "khóa riêng" và "khóa công khai" có cùng tên.

  1. Chọn khóa riêng trong Keychain Access, sau đó nhấp vào file - mặt hàng xuất khẩu ....
  2. Lưu tệp ở định dạng .p12 ở đâu đó, nhưng hãy nhớ đường dẫn. Những hướng dẫn này giả định rằng nó nằm trong thư mục chính của bạn và được gọi là exported.p12. Để trống mật khẩu.
  3. Mở Terminal và nhập:

    openssl pkcs12 -in ~/exported.p12 -nocerts -nodes | openssl rsa -pubout > public.pem 
    

    Xem [2] ở phần cuối của bài viết này để biết chi tiết về những gì đang xảy ra.

  4. nhập khóa công khai này vào Keychain Access bằng công cụ security:

    security -v import public.pem -k ~/Library/Keychains/login.keychain 
    

    Bạn sẽ thấy "1 key nhập khẩu."

Thay đổi ~/Library/Keychains/login.keychain nếu bạn muốn nhập khóa này vào một keychain khác. (Bạn có thể thấy vị trí của mỗi keychain bằng cách chuyển đến Chỉnh sửa - Danh sách Keychain trong Keychain Access).

  1. Mở Keychain Access và định vị khóa công khai có tên "Khóa công khai đã nhập". Bấm đúp vào nó và thay đổi tên của nó thành giống như khóa riêng ban đầu của bạn.
  2. Xóa exported.p12public.pem.

Bạn có thể bây giờ click chuột phải vào khóa riêng độc đáo và chọn Yêu cầu một chứng chỉ từ một Certificate Authority Với "tên của Key của bạn" để tạo ra một CSR.

Giải thích

[1] Lệnh này, chia nhỏ:

openssl req -new # Generate a new certificate signing request 
    -key   # Instead of generating a key, use an existing one 
    <(    # Put the output of the following command in a temporary file 
        # (a Bash feature, not specific to OpenSSL) 
    openssl pkcs12 -in ~/exported.p12 # Read keys from the specified PKCS12 file 
    -nocerts   # Don't output the certificate contained in the file 
    -nodes   # Output the private key from the file 
    -passin pass:"" # The password for the container is blank 
) 
> new.certSigningRequest # Write the generated CSR to a file 

[2] lệnh thứ hai, chia nhỏ:

openssl pkcs12 -in ~/exported.p12 # Read keys from the specified PKCS12 file 
    -nocerts -nodes     # Output only the private key, no certificates 
| openssl rsa -pubout    # Compute the public key from a private key 
> public.pem      # Write the public key to a file 
+0

Câu trả lời hay. Rất nhiều chi tiết và giải thích. Đúng thứ tôi cần. – Glenn

+0

Tôi gặp sự cố ở bước 5: không thể đổi tên khóa công khai được nhập trong Keychain tùy chỉnh của mình. Tôi đã phải di chuyển nó vào keychain phiên, đổi tên nó, và sau đó di chuyển nó trở lại. – Julien

Các vấn đề liên quan