Cách kết hợp các chứng chỉ khác nhau thành một .pem


35

Tôi vừa đọc xong chủ đề tuyệt vời này giải thích các định dạng SSL khác nhau.

Bây giờ, về cơ bản tôi đang tìm kiếm điều ngược lại với Cách chia tệp PEM

Có 4 tệp tôi muốn hợp nhất, ban đầu được tạo cho Apache, tôi đang xem các tệp được chỉ định bởi

  • SSLCertertFile
  • SSLCertertKeyFile
  • SSLCertertChainFile
  • SSLCACertertFile

Điều tôi chủ yếu tò mò là thứ tự của các tập tin trong điều khoản hợp nhất, điều đó có quan trọng không? VÍ DỤ. nếu tôi catkết hợp chúng theo thứ tự chúng xuất hiện ở trên, thành một .pem , liệu nó có hợp lệ không, hay chúng nên được đặt hàng một cách cụ thể?

FYI, tôi đang làm điều này vì mục đích sử dụng các certs này như là một .pem kết hợp trong SimpleSAMLphp .


Thứ tự phải là khóa riêng, certs trung gian, chứng chỉ của bạn.
Zoredache

Thế còn CA, không phải là gốc của chuỗi, và do đó, nó sẽ đi sau chuỗi trong tệp hợp nhất? Hoặc nó có thể được bỏ qua hoàn toàn?
quickshiftin

Âm thanh như là tùy chọn , tôi sẽ cuộn nó ngay bây giờ.
quickshiftin

Câu trả lời:


43

Thứ tự không thành vấn đề, theo RFC 4346 .

Đây là một trích dẫn được lấy trực tiếp từ RFC:

  certificate_list
    This is a sequence (chain) of X.509v3 certificates.  The sender's
    certificate must come first in the list.  Each following
    certificate must directly certify the one preceding it.  Because
    certificate validation requires that root keys be distributed
    independently, the self-signed certificate that specifies the root
    certificate authority may optionally be omitted from the chain,
    under the assumption that the remote end must already possess it
    in order to validate it in any case.

Dựa trên thông tin này, chứng chỉ máy chủ phải được ưu tiên, theo sau là bất kỳ certs trung gian nào và cuối cùng là chứng chỉ ủy quyền gốc đáng tin cậy (nếu tự ký). Tôi không thể tìm thấy bất kỳ thông tin nào về khóa riêng, nhưng tôi nghĩ điều đó không quan trọng bởi vì khóa riêng trong pem rất dễ xác định khi nó bắt đầu và kết thúc bằng văn bản bên dưới, có từ khóa PRIVATEtrong đó.

 -----BEGIN RSA PRIVATE KEY-----
 -----END RSA PRIVATE KEY-----

2
cat site.crt root.crt site.key> site.pem
curorzos

6

Đây là lệnh để kết hợp sử dụng cat

cat first_cert.pem second_cert.pem > combined_cert.pem

3
Đó là một câu trả lời làm thế nào để ghép hai bất kỳ certs nào, nhưng không phải là cách hợp nhất / concatenate certs cho Apache.
asdmin

Điều này không thực sự để trả lời câu hỏi, câu trả lời được chấp nhận là đủ tốt. Tôi chỉ cung cấp thêm thông tin về cách ghép nối, vì người đăng ban đầu nói về việc sử dụng mèo, tôi nghĩ rằng nó có thể giúp đỡ người khác.
tidileboss

2
Câu trả lời của bạn không chỉ ra những gì đặt các tập tin nên được nối vào (bạn chỉ có "first_cert.pem" và "second_cert.pem"). Câu trả lời đúng sẽ làcat my_site.pem ca_chain.pem my_site.key > combined_cert.pem
Doktor J
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.