Điểm:0

Có cần đưa tham chiếu tệp CA vào khối cấu hình vhost Apache của tôi không?

lá cờ dj

Tôi đang nâng cấp máy chủ web Apache của mình và tự hỏi liệu tôi có cần khai báo tệp CA trong cấu hình vhost không?

Thiết lập vhost của tôi là

Công cụ SSL bật
SSLCertificateFile /home/user/ssl/${SITE}-cert.pem
SSLCertificateKeyFile /home/user/ssl/${SITE}-key.pem
SSLCertificateChainFile /home/user/ssl/${SITE}-ca.pem
#SSLCACertificateFile /home/user/ssl/${SITE}-ca.pem

Theo mặc định, Apache vận chuyển chỉ với Chứng chỉ SSLTệpSSLCertificateKeyFile tích cực. Tương tự với gói của Debian. Tôi hiểu cả hai điều này.

Theo mặc định, cả hai SSLCertificateChainFileSSLCACertificateTệp bị vô hiệu hóa trên nguồn của Apache và gói của Debian. Tôi nghĩ rằng tôi hiểu những điều này, nhưng bây giờ không chắc lắm.

Tất cả các trang web của tôi hoạt động tốt với cả hai CA chỉ thị bị vô hiệu hóa.

Nhưng tôi có thiếu thứ gì không? Việc vô hiệu hóa cả hai có khiến máy chủ của tôi cung cấp CA ở hậu trường, chẳng hạn như từ /etc/ssl/certs của hệ thống không?

Let's Encrypt cung cấp tệp CA của họ trong quá trình gia hạn, vì vậy tôi cho rằng sẽ không hại gì nếu chỉ định SSLCertificateChainFile, nhưng tôi muốn hiểu tại sao các trang web của tôi hoạt động mà không có nó?

Không phải hai chỉ thị CA này phục vụ một mục đích tương tự như Tệp gói CA của cURL được lấy từ Mozilla? Tôi có thể chỉ điểm không SSLCACertificateTệp với điều đó trên máy chủ của tôi và gọi nó là một ngày?

Tôi hiểu rằng khách hàng đảm nhận việc xác minh chứng chỉ của trang web bằng cách sử dụng CA được ủy quyền của chính họ. Tôi có lầm không?

Tài liệu dường như không cung cấp bất kỳ thông tin chi tiết nào:

SSLCertificateChainFileSSLCACertificateTệp

Điểm:2
lá cờ cn

Trước hết, gửi chuỗi trung gian tới chứng chỉ gốc với phản hồi máy chủ của bạn không phải lúc nào cũng chính xác CẦN THIẾT, nhưng nó được khuyến khích thực hành.

Ngày nay, nhiều khách hàng có tất cả các loại chứng chỉ trung gian được lưu trữ trong cửa hàng ủy thác chứng chỉ của họ hoặc lấy chúng từ cửa hàng ủy thác của hệ điều hành. Tuy nhiên, nếu bạn có ý định phục vụ công chúng CHUNG, bạn không thể đưa ra bất kỳ giả định nào về điều này và bạn NÊN gửi chuỗi trung gian cùng với phản hồi của mình.

Nếu bạn không gửi chuỗi trung gian, bạn sẽ nhận được các báo cáo lẻ tẻ về việc mọi người không thể kết nối với dịch vụ của bạn. Và điều đó có thể phụ thuộc vào trình duyệt của họ, phiên bản của trình duyệt và hệ điều hành cơ bản.

Trớ trêu thay, việc chọn một chuỗi trung gian cụ thể và gửi nó cùng với phản hồi đôi khi có thể hủy bỏ xác thực SSL đối với một số khách hàng lẽ ra đã xác thực chuỗi đó từ chính một số chuỗi được lưu trữ. Như trường hợp của một số ứng dụng khách openssl cũ hơn trên các máy chủ và chứng chỉ do letencrypt cấp, nhưng bạn có thể cho rằng trong trường hợp đó, sự hỗ trợ của các máy chủ đó cuối cùng sẽ tìm ra.

Bạn thực sự không cần chỉ thị ChainFile trong Apache cho điều đó, bởi vì bạn cũng có thể nối các tệp chứng chỉ pem từ chứng chỉ cuối về phía gốc và sử dụng chúng chỉ với chỉ thị SSLCertificateFile.

Những gì bạn không cần làm là gửi chứng chỉ gốc. Bởi vì nếu một khách hàng thực sự sử dụng nó, thì nó sẽ đánh bại việc sử dụng xác thực SSL trên thực tế.

SSLCACertificateTệp là cần thiết khi và chỉ khi, bạn cần xác thực chứng chỉ từ các ứng dụng khách kết nối với bạn VÀ bạn sẽ không sử dụng kho lưu trữ tin cậy cơ bản của hệ thống cho việc đó. Vì vậy, đây thực sự là một cách sử dụng hoàn toàn khác so với Chứng chỉ SSLChainfile

Hơn nữa, nếu nghi ngờ, hãy sử dụng các công cụ xác thực tuyệt vời của Qualys SSL Labs: https://www.ssllabs.com/ssltest/

lá cờ in
Câu hỏi không phải về chứng chỉ gốc, mà là về CA được sử dụng để chứng nhận ứng dụng khách. Đây CÓ THỂ là CA gốc của trang web, nhưng không nhất thiết phải như vậy.
Gerrit avatar
lá cờ cn
OP nói về việc lưu trữ `trang web`, vì vậy trong trường hợp này chỉ có `SSLCertificateChainfile` là có liên quan.
Jeff avatar
lá cờ dj
*Nếu bạn không gửi chuỗi trung gian, bạn sẽ nhận được các báo cáo lẻ tẻ về việc mọi người không thể kết nối với dịch vụ của bạn.* Đây là điều tôi muốn tránh. Nếu chỉ định `SSLCACertificateFile` hoặc `SSLCertificateChainFile` sẽ giúp ngăn chặn điều này, thì tôi sẽ thêm lệnh thích hợp. Nếu nó không có gì khác biệt, tôi sẽ không làm.
Gerrit avatar
lá cờ cn
Bạn hoàn toàn NÊN gửi chuỗi trung gian. Sẽ không có gì khác biệt nếu bạn nối nó với chứng chỉ cuối và gửi nó trong `SSLCertificateFile`, hoặc bạn tách riêng chứng chỉ cuối và chuỗi rồi gửi chuỗi trong `SSLCertificateChainFile`. Như tôi đã giải thích, không thường xuyên với những người làm việc trên các máy chủ cũ thực sự sẽ chặn chúng, nhưng điều đó không thể tránh được.
Jeff avatar
lá cờ dj
Tôi đã tìm thấy các tài liệu [LetsEncrypt](https://eff-certbot.readthedocs.io/en/stable/using.html#where-are-my-certificates) này giúp xóa mọi thứ. Cảm ơn một lần nữa.
Gerrit avatar
lá cờ cn
Vâng, đó thực sự là LetsEncrypt nơi chuỗi trung gian mặc định được tối ưu hóa để tương thích tối đa với càng nhiều máy khách càng tốt, nhưng trong quá trình đó sẽ phá hủy khả năng tương thích với một số phần mềm máy chủ cũ nếu mọi người không duy trì nó. Điều này xảy ra sau khi root cũ hết hạn.
A.B avatar
lá cờ cl
A.B
Tôi thường đồng ý với những gì Gerrit đã viết. Nhưng để tìm hiểu kỹ về cấu hình apache cụ thể, cùng một cấu hình mặc định thường cho biết rằng SSLCertificateChainfile có thể được trỏ đến cùng một chứng chỉ SSLCertificateFile nếu nó chứa một chuỗi máy chủ + trung gian. Trên thực tế, việc không xác định nó trong trường hợp như vậy cũng hoạt động giống nhau (và hợp lý hơn). Tính năng này (cho phép *không* sử dụng SSLCertificateChainfile) khả dụng kể từ apache httpd 2.4.8: https://httpd.apache.org/docs/2.4/mod/mod_ssl.html#sslcertificatechainfile
Điểm:1
lá cờ se

Cần có tệp CA nếu chứng chỉ cần được xác thực đối với CA này. Trong ngữ cảnh của một máy chủ SSL như Apache, điều này là cần thiết để xác thực chứng chỉ ứng dụng khách và để xác thực các phản hồi OCSP trong ngữ cảnh dập ghim OCSP. Nếu không cần những thứ này, thì không cần cung cấp tệp CA. Nếu bất kỳ điều nào trong số này là cần thiết nhưng việc xác thực sẽ xảy ra đối với CA mặc định của hệ thống thì cũng không cần cung cấp tệp CA.

Jeff avatar
lá cờ dj
Trong ngữ cảnh của một máy chủ web cũ đơn giản phục vụ https, việc xác định các lệnh CA có cần thiết không? Tôi không biết liệu mình có đang thực hiện dập ghim OCSP hay không và không chắc liệu tôi có đang xác thực chứng chỉ ứng dụng khách khi tôi phân phối các trang https của mình hay không.
lá cờ in
Nếu bạn không biết mình có sử dụng các tính năng này hay không thì rất có thể là bạn không sử dụng.
Jeff avatar
lá cờ dj
Tôi nghĩ bây giờ tôi đã hiểu. Hầu hết các máy khách xác thực máy chủ bằng CA của họ, nhưng hầu hết các máy chủ cung cấp https không xác thực máy khách. Vì vậy, tôi không cần chỉ định chỉ thị `CA` trừ khi tôi bắt đầu xác thực ứng dụng khách của mình. Âm thanh phải không?
Steffen Ullrich avatar
lá cờ se
@Jeff: Có, thông thường không có chứng chỉ ứng dụng khách nào được sử dụng. Và tính năng dập ghim OCSP (nếu được bật hoàn toàn) có thể được xác minh dựa trên CA hệ thống.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.