Cách tạo tệp .key và .crt từ tệp JKS cho máy chủ apache httpd


19

Tôi chỉ có tệp mycert.jks . Bây giờ tôi cần giải nén và tạo tập tin .key và .crt và sử dụng nó trong máy chủ httpd apache.

SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt 
SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key 

Bất cứ ai cũng có thể liệt kê tất cả các bước để thực hiện điều này. Tôi đã tìm kiếm nhưng không có ví dụ cụ thể để hiểu, trộn và kết hợp các bước.

Xin đề nghị!

[EDIT] Nhận lỗi sau khi làm theo các bước từ bên dưới trả lời.

8/‎21/‎2015 9:07 PM] Sohan Bafna: 
    [Fri Aug 21 15:32:03.008511 2015] [ssl:emerg] [pid 14:tid 140151694997376] AH02562: Failed to configure certificate 0.0.0.0:4545:0 (with chain), check /home/certs/smp_c
    ert_key_store.crt
    [Fri Aug 21 15:32:03.008913 2015] [ssl:emerg] [pid 14:tid 140151694997376] SSL Library Error: error:0906D06C:PEM routines:PEM_read_bio:no start line (Expecting: TRUSTED
     CERTIFICATE) -- Bad file contents or format - or even just a forgotten SSLCertificateKeyFile?
    [Fri Aug 21 15:32:03.008959 2015] [ssl:emerg] [pid 14:tid 140151694997376] SSL Library Error: error:140DC009:SSL routines:SSL_CTX_use_certificate_chain_file:PEM lib 

Câu trả lời:


29

.jks là một kho lưu trữ khóa, là một thứ Java

sử dụng nhị phân keytool từ Java.

xuất .crt :

keytool -export -alias mydomain -file mydomain.der -keystore mycert.jks

chuyển đổi chứng chỉ sang PEM :

openssl x509 -inform der -in mydomain.der -out certificate.pem

xuất khóa :

keytool -importkeystore -srckeystore mycert.jks -destkeystore keystore.p12 -deststoretype PKCS12

khóa PKCS12 cho PEM không được mã hóa :

openssl pkcs12 -in keystore.p12  -nodes -nocerts -out mydomain.key

tín dụng:


Không hoạt động, gặp lỗi
Sohan

chứng chỉ xuất khẩu là định dạng DER. thêm một bước để chuyển nó sang PEM
exeral

thnx, điều đó có thể làm việc tôi chưa thử
Sohan

keytool -exportcert -rfcviết ở định dạng PEM và không cần chuyển đổi. Ngoài ra, khi bạn có p12, hãy openssl pkcs12 -nokeysviết toàn bộ chuỗi chứng chỉ trong PEM, thường tốt hơn cho máy chủ sử dụng OpenSSL (như httpd) nếu chứng chỉ này là từ một CA thực chứ không phải là chứng chỉ tự ký mặc định keytool.
dave_thndry_085

1
lưu ý: Bí danh có thể là tên của chứng chỉ, nếu bạn biết tên đó là gì khi nó được xuất. Muốn đề cập rằng trong trường hợp mọi người đang vật lộn để chạy lệnh đầu tiên.
GM Lucid

19

Đây là những gì tôi làm,

Đầu tiên xuất khóa:

keytool -importkeystore -srckeystore mycert.jks -destkeystore keystore.p12 -deststoretype PKCS12

Đối với tệp chứng chỉ ssl apache, bạn chỉ cần chứng chỉ:

openssl pkcs12 -in keystore.p12 -nokeys -out my_key_store.crt

Đối với tệp khóa ssl bạn chỉ cần các khóa:

openssl pkcs12 -in keystore.p12 -nocerts -nodes -out my_store.key


0

Tìm thấy câu trả lời ở đây:

/programming/7580508/getting-chrome-to-accept-elf-sign-localhost-certert?page=2&tab=Votes

Nó chỉ ra cách tạo crt từ tệp kho khóa jks trong Chrome trên Windows:

  • đi tới url trong trình duyệt sử dụng jks với dòng màu đỏ và sẽ có biểu tượng khóa ở bên trái

  • bằng cách nhấp vào phần không an toàn, hộp thoại thông tin sẽ mở ra

  • bấm vào chứng chỉ (không hợp lệ) và khi nó mở bấm vào Chi tiết

  • nhấn vào bản sao để tập tin ... và làm theo hướng dẫn

Cuối cùng, bạn có tệp kho khóa trong crt

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.