Làm thế nào một chứng chỉ SSL chỉ có thể làm việc cho một số khách hàng?


11

Nhà cung cấp dịch vụ lưu trữ của tôi gần đây đã cấp lại và cài đặt lại chứng chỉ SSL cho tên miền của tôi, sau khi họ để lỗi cũ hết hạn.

Bây giờ tôi có thể duyệt lại trang web qua HTTPS và máy chủ của tôi cũng vậy, và một số người dùng khác cũng vậy.

Tuy nhiên, một số người dùng (ít nhất là một chục trong số hàng trăm) vẫn nhận được Your connection is not securethông báo lỗi trên các trình duyệt và nền tảng khác nhau. (Thật khó để chẩn đoán một vấn đề mà tôi không thể tái tạo.)

Tôi hiểu các trình duyệt khác nhau sử dụng các danh sách khác nhau của Cơ quan chứng nhận (CA.)

  1. Tại sao một người dùng chạy cùng một phiên bản Firefox như tôi (45.0.1 trên OS X) lại SEC_ERROR_UNKNOWN_ISSUERgặp lỗi (chỉ đối với trang web của tôi) trong khi tôi thì không? Điều gì làm cho nó có thể? Người dùng cho biết đã xóa bộ nhớ cache và khởi động lại máy tính xách tay của mình.

Tôi đã chạy một kiểm tra SSL trên digicert.com . Kết quả là thế này:

Chứng chỉ SSL không đáng tin cậy

Chứng chỉ không được ký bởi cơ quan đáng tin cậy (kiểm tra đối với cửa hàng gốc của Mozilla). Nếu bạn đã mua chứng chỉ từ một cơ quan đáng tin cậy, có lẽ bạn chỉ cần cài đặt một hoặc nhiều chứng chỉ Trung cấp. Liên hệ với nhà cung cấp chứng chỉ của bạn để được hỗ trợ làm điều này cho nền tảng máy chủ của bạn.

  1. Tại sao tôi có thể kết nối với trang web mà không gặp lỗi SSL nếu đây là trường hợp?

1
My hosting provider has recently re-issued and re-installed an SSL certificate for my domain, after they let the old one expire by mistake.- Làm thế nào mà bạn để lại trách nhiệm này trong tay họ?
joeqwerty

3
Chỉ bởi vì tôi không phải là sysadmin, tôi thuê một máy chủ chuyên dụng được quản lý từ họ. (Đối với câu chuyện nền tảng nhỏ, tôi viết tài liệu và mã học ngôn ngữ, trên cơ sở điều hành doanh nghiệp, do đó, sysadmin cũng vậy, trong khi thú vị, sẽ là một trong quá nhiều mũ.)
Fabien Snauwaert

7
@joeqwerty: Vì đó là công việc của họ? Anh ấy thực sự trả tiền cho họ để sắp xếp những thứ này cho anh ta.
Các cuộc đua nhẹ nhàng trong quỹ đạo

@LightnessRacesinOrbit: Đó là một giả định tôi không đưa ra, do đó là câu hỏi.
joeqwerty

1
bugzilla.mozilla.org/show_orms.cgi?id=399324 là báo cáo lỗi yêu cầu hỗ trợ để tự động tải xuống chứng chỉ trung gian trong Firefox. Cuộc thảo luận (8 năm nay) rút gọn thành "IE làm điều đó!" / "Đến địa ngục với IE, RFC nói rằng đó là tùy chọn!" / "Bao giờ nghe nói về nguyên tắc mạnh mẽ?" / "Cấu hình máy chủ của bạn rất tệ và bạn sẽ cảm thấy tồi tệ!"

Câu trả lời:


22

Chuỗi chứng chỉ của chứng chỉ của bạn không đầy đủ. Nhiều khả năng nhà cung cấp của bạn không cài đặt được một số chứng chỉ trung gian khi cài đặt chứng chỉ mới.

Hầu hết các chứng chỉ trung gian như vậy được cung cấp bởi cơ quan SSL, để cung cấp hỗ trợ cho một số trình duyệt và hệ điều hành cũ hơn. Đó là lý do, trong khi nó hoạt động cho bạn, nó không hoạt động đối với một số khách hàng của bạn.

Một tiện ích thực sự tuyệt vời để kiểm tra các sự cố SSL với trang web của bạn là kiểm tra Máy chủ SSL bằng SSLlabs . Như bạn có thể thấy trong liên kết ở trên, không chỉ bạn gặp vấn đề về chuỗi ở đây, mà cả thuật toán chữ ký được sử dụng để tạo chứng chỉ của bạn là một điểm yếu, máy chủ web của bạn vẫn có thể bị tấn công bởi POODLE và vẫn hỗ trợ RC4, đó là cũng được coi là không an toàn ...

Tôi không muốn nói bất cứ điều gì chống lại nhà cung cấp máy chủ web của bạn, nhưng ở vị trí của bạn, tôi sẽ gửi thư cho họ, rằng họ sẽ khắc phục tất cả các vấn đề này càng sớm càng tốt, hoặc thay đổi sang nhà cung cấp khác ...


Cảm ơn bạn, điều đó rất hữu ích. Vì tò mò, có ai biết tại sao một khách hàng trên OS X và cùng một phiên bản Firefox như của tôi lại SEC_ERROR_UNKNOWN_ISSUERgặp lỗi trong khi tôi thì không? Có thể là phiên bản hệ điều hành của anh ấy là khác nhau?
Fabien Snauwaert

1
@FabienSnauwaert Vâng, nếu bạn cuộn xuống "Mô phỏng bắt tay", thử nghiệm SSLLabs sẽ cố gắng mô phỏng các kết hợp phiên bản OS / Browser khác nhau. Trình duyệt không tự xử lý các kết nối SSL, nhưng một phần phụ thuộc vào việc triển khai HĐH. Vì vậy, chắc chắn phiên bản hệ điều hành làm cho một sự khác biệt.
s1lv3r

3
Không chỉ khách hàng có thể có danh sách CA khác nhau. Cũng có thể một số máy khách lưu trữ chứng chỉ trung gian để trang web có chứng chỉ trung gian bị thiếu có thể hoạt động nếu trước đó trình duyệt đã truy cập trang web đã định cấu hình chính xác chứng chỉ trung gian đó.
kasperd

Trang web SSLlabs là một công cụ tốt. Cảm ơn đã tham khảo.
Parapluie

12

Để chứng chỉ được tin cậy, nó phải được ký bởi một thực thể được tin cậy bởi sự kết hợp trình duyệt / HĐH của bạn hoặc đến lượt nó được ký bởi một thực thể đó. Điều này thường được thực hiện bởi một CA gốc đáng tin cậy ký CA trung gian và CA trung gian ký chứng chỉ của bạn. Điều này tạo ra một chuỗi, như thế này:

  1. Root CA được máy tính của bạn tin cậy và ký
  2. CA trung gian, có dấu hiệu
  3. Chứng chỉ của bạn, chỉ được tin cậy do chuỗi dẫn trở lại CA gốc.

Vấn đề ở đây là với chứng chỉ CA trung gian. Để đảm bảo rằng tất cả mọi người có thể xác nhận chuỗi hoàn toàn trở lại CA gốc, nhà cung cấp của bạn nên bao gồm chứng chỉ trung gian trong cấu hình máy chủ của nó. Trong trường hợp này, họ đã không.

Lý do tại sao nó hoạt động đối với một số người dùng là họ có chứng chỉ trung gian trong "cửa hàng tin cậy" của riêng họ. Trong những trường hợp đó, họ sẽ chấp nhận chứng chỉ của bạn vì họ đã tin tưởng vào trung gian. Nhưng trong trường hợp khách truy cập của bạn có hệ điều hành / trình duyệt khác, họ không có chứng chỉ trung gian, vì vậy họ sẽ cần lấy nó từ máy chủ web của bạn - và máy chủ web của bạn không xử lý được, vì vậy họ không có cách nào kiểm chứng nó


Cảm ơn bạn, nó giúp tôi thấy vấn đề rõ ràng bây giờ. Có mẹo nào để khiến người dùng thêm chứng chỉ trung gian vào cửa hàng ủy thác của riêng họ trong khi chờ máy chủ của tôi sửa chứng chỉ không? ví dụ: truy cập một trang web SSL khác dựa vào nó hay sao?
Fabien Snauwaert

1
@FabienSnauwaert Không có mẹo, thật không may. Chỉ cần truy cập một trang web có cùng chứng chỉ trung gian sẽ không giúp được gì; họ sẽ thực sự cần phải tải chứng chỉ và thêm thủ công vào trình duyệt của họ. Tôi tin rằng chứng chỉ cụ thể này được bao gồm trong các trình duyệt mới hơn - nó hoạt động trong Firefox 45.0.1 nhưng không phải trong 43.0.4, vì vậy nó được đưa vào đâu đó giữa hai phiên bản. Vì vậy, nếu bạn có thể khiến khách hàng của mình nâng cấp trình duyệt của họ, điều đó sẽ giúp ích.
Jenny D

4
Chứng chỉ trung gian @JennyD được lưu trữ bởi các trình duyệt hiện đại, do đó, việc truy cập một trang web khác sử dụng cùng một trung gian có khả năng hoạt động tốt. Tuy nhiên, đó là thực sự không phải là điều ai nên hỏi của người dùng của họ ... (xem: bugzilla.mozilla.org/show_bug.cgi?id=629558 , sslmate.com/blog/post/chrome_cached_sha1_chains )
Bob

0

Nếu bạn đang sử dụng Ghim khóa công khai HTTP và nhà cung cấp của bạn đã cấp cho bạn một chứng chỉ mới, các khóa công khai có thể đã thay đổi. Các khóa này được lưu trong trình duyệt của máy khách trong khoảng thời gian bạn đã chỉ định.

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.