Sự khác biệt giữa SSLCACertificateFile và SSLCertificateChainFile


76

Tôi cung cấp các trang SSL trên máy chủ web của mình và tôi có một câu hỏi. Sự khác biệt giữa SSLCACertificateFile và SSLCertificateChainFile là gì?

Khi tôi sử dụng SSLCertificateChainFile, tôi nhận được cảnh báo từ trình duyệt điện thoại di động của Nhật Bản, nhưng khi tôi sử dụng trình duyệt PC (như IE, FF), không có vấn đề gì. Mặt khác, SSLCACertificateFile không gây ra bất kỳ sự cố nào cho cả hai trình duyệt.

Có sự khác biệt nào khi trình duyệt kết nối với apache không?


thats quá dễ dàng Các sig gốc không có trong các cửa hàng gốc của điện thoại di động mà là phổ biến

Câu trả lời:


74

SSLCertificateChainFile là một tùy chọn chính xác để chọn nhưng chỉ thị này đã trở nên lỗi thời kể từ Apache 2.4.8 . Chỉ thị này khiến tệp được liệt kê được gửi cùng với chứng chỉ đến bất kỳ ứng dụng khách nào kết nối.

SSLCACertificateFile (sau đây gọi là "CACert") thay thế SSLCertificateChainFile (sau đây gọi là "Chain") và cũng cho phép sử dụng cert được đề cập để ký chứng chỉ ứng dụng khách . Loại xác thực này khá hiếm (ít nhất là ở thời điểm hiện tại) và nếu bạn không sử dụng nó, IMHO không có lý do gì để tăng cường chức năng của nó bằng cách sử dụng CACert thay vì Chain. Mặt khác, người ta có thể tranh luận rằng không có hại gì trong chức năng bổ sung và CACert bao gồm tất cả các trường hợp. Cả hai đối số đều hợp lệ.

Không cần phải nói, nếu bạn yêu cầu nhà cung cấp chứng chỉ, họ sẽ luôn thúc đẩy CACert qua Chuỗi, vì nó mang lại cho họ một thứ khác (chứng chỉ của khách hàng) mà họ có khả năng bán hàng cho bạn. ;)


Một điều khác cần xem xét thực sự là thuật toán. "Nhưng hãy cẩn thận: Việc cung cấp chuỗi chứng chỉ chỉ hoạt động nếu bạn đang sử dụng một chứng chỉ máy chủ duy nhất (RSA hoặc DSA). Nếu bạn đang sử dụng cặp chứng chỉ RSA + DSA được kết hợp, điều này sẽ chỉ hoạt động nếu thực sự cả hai chứng chỉ đều sử dụng giống nhau chuỗi chứng chỉ. Nếu không, các trình duyệt sẽ bị nhầm lẫn trong tình huống này. " ---- httpd.apache.org/docs/2.0/mod/…
Eddie

@Eddie Đúng, mặc dù tôi tin rằng điều quan trọng cần đề cập là điều này ảnh hưởng đến cả hai tùy chọn như nhau. Ngoài ra, có lẽ đáng để chỉ ra rằng chứng chỉ DSA (thật may mắn) là rất hiếm.
BMDan

20

Trên thực tế, cả hai đều có thể là tùy chọn hợp lệ.

Sử dụng SSLCertificateChainFile để xuất bản chứng chỉ của bạn được ký bởi tổ chức cấp chứng chỉ công cộng (VeriSign, RapidSSL, v.v.)

Sử dụng SSLCACertificateFile để cung cấp CA 'riêng tư' của bạn, có thể cấp chứng chỉ ứng dụng khách, mà bạn có thể phân phối cho một số người dùng được chọn. Những clientchứng chỉ này thực sự tuyệt vời để xác thực (so với xác thực mật khẩu cơ bản) và thường không được CA công khai yêu cầu phân phối (do đó bạn có thể tiết kiệm một số tiền).

Vì vậy, nếu bạn muốn thêm ủy quyền an toàn vào một số phần của trang web của mình, hãy làm như sau:

<Directory /var/www/html/authorized>
  SSLVerifyClient require
  SSLVerifyDepth  5

  SSLOptions +StrictRequire
  SSLUserName SSL_CLIENT_S_DN_CN
  SSLRequireSSL
</Directory>

Chỉ để giải thích ngắn gọn SSLUserName SSL_CLIENT_S_DN_CNsẽ đặt tên người dùng đã xác thực thành CommonName của chứng chỉ, so với toàn bộ chủ đề x509 '/ OU = Foo / CN = ...'.

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.