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.
- Chọn khóa riêng trong Keychain Access, sau đó nhấp vào file - mặt hàng xuất khẩu ....
- 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.
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.
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.
- 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.
- Chọn khóa riêng trong Keychain Access, sau đó nhấp vào file - mặt hàng xuất khẩu ....
- 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.
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.
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).
- 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.
- Xóa
exported.p12
và public.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
Nguồn
2014-02-12 23:34:17
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ì? –
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
@ 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 –