Nói đúng ra, bạn không bao giờ cần chuỗi để SSL hoạt động.
Những gì bạn luôn cần một là SSLCertificateFile
với một SSLCertificateKeyFile
chứa khóa chính xác cho giấy chứng nhận đó.
Vấn đề là, nếu tất cả những gì bạn cung cấp cho Apache là chứng chỉ, thì tất cả những gì nó phải cung cấp để kết nối các máy khách là chứng chỉ - điều này không nói lên toàn bộ câu chuyện về chứng chỉ SSL đó. Nó nói, "Tôi đã được ký bởi ai đó, nhưng tôi sẽ không nói với bạn về họ".
Điều này thường hoạt động tốt, vì hầu hết các hệ thống máy khách đều có một kho chứng chỉ CA lớn (cả gốc và trung gian) mà nó có thể kiểm tra thông qua mối quan hệ ký kết phù hợp để thiết lập lòng tin. Tuy nhiên, đôi khi điều này không hoạt động; Thông thường, vấn đề bạn sẽ gặp phải là một khách hàng không có chứng chỉ cho một CA trung gian đã ký chứng chỉ của bạn.
Đó là nơi chuỗi đến; nó cho phép Apache hiển thị cho khách hàng chính xác mối quan hệ tin cậy trông như thế nào, điều này có thể giúp khách hàng điền vào chỗ trống giữa chứng chỉ của bạn, gốc mà họ tin tưởng và trung gian mà họ không biết. Chuỗi có thể được bao gồm trong cấu hình của bạn theo một trong hai cách:
- Được nhúng trong cùng một tệp như bạn đã đặt cho bạn
SSLCertificateFile
, trên các dòng mới sau chứng chỉ máy chủ theo thứ tự (gốc phải ở dưới cùng). Nếu bạn thiết lập nó như thế này, bạn sẽ muốn SSLCertificateChainFile
trỏ đến cùng một tệp chính xác như SSLCertificateFile
.
- Trong một tệp riêng được cấu hình trong
SSLCertificateChainFile
chỉ thị; chứng chỉ CA đã cấp chứng chỉ của máy chủ phải là đầu tiên trong tệp, theo sau là bất kỳ cái nào khác ở gốc.
Kiểm tra tệp chứng chỉ mà bạn có bây giờ - Tôi cá là nó không có dữ liệu chuỗi. Mà thường hoạt động tốt, nhưng cuối cùng sẽ gây ra vấn đề với một số trình duyệt hoặc khác.
/etc/ssl
,/usr/local/etc/ssl
hoặc trong mộtssl
cụ thể thư mục con vào trang web (ví dụ/home/www/example.com/data
có các trang web sau đóhome/www/example.com/ssl
có certs).