Sự khác biệt giữa CA tự ký và chứng chỉ tự ký


81

Tôi không rõ về sự khác biệt giữa khóa CA và chứng chỉ. Không phải khóa CA chỉ đơn giản là một chứng chỉ? Hãy để tôi thử và làm rõ với một ví dụ.

Tôi có một khách hàng và một máy chủ. Tôi chỉ đang cố gắng xác thực kết nối của mình với máy chủ của mình và không cố gắng thiết lập sự tin cậy cho người khác nên tôi không quan tâm đến việc ký kết với một CA thực sự.

Tùy chọn 1: Tạo CA tự ký ( ssCA ) và sử dụng CA đó để ký chứng chỉ ( C ). Sau đó tôi cài đặt ssCA vào keystore gốc trên máy khách và thiết lập máy chủ của tôi để chứng nhận sử dụng của tôi C .

Tùy chọn 2: Tạo chứng chỉ tự ký ( SSC ). Cài đặt SSC vào kho khóa gốc trên máy khách của tôi. Thiết lập máy chủ của tôi để sử dụng chứng chỉ SSC .

Tùy chọn thứ hai có vẻ như là một quá trình đơn giản hơn nhiều. Điều đó vẫn còn hoạt động?

Câu trả lời:


62

Cả hai phương án đều hợp lệ, phương án 2 đơn giản hơn.

Tùy chọn 1 (thiết lập CA của riêng bạn) thích hợp hơn khi bạn cần nhiều chứng chỉ. Trong một công ty, bạn có thể thiết lập CA của riêng mình và cài đặt chứng chỉ của CA đó trong kho khóa gốc của tất cả các máy khách. Những ứng dụng khách đó sau đó sẽ chấp nhận tất cả các chứng chỉ do CA của bạn ký.

Tùy chọn 2 (tự ký chứng chỉ mà không cần CA) dễ dàng hơn. Nếu bạn chỉ cần một chứng chỉ duy nhất, thì điều này là đủ. Cài đặt nó trong kho khóa của khách hàng của bạn và bạn đã hoàn tất. Nhưng khi bạn cần chứng chỉ thứ hai, bạn cần cài đặt lại chứng chỉ đó trên tất cả các máy khách.

Đây là một liên kết có thêm thông tin: Tạo Tổ chức phát hành chứng chỉ và chứng chỉ SSL tự ký


Nếu CA ký một chứng chỉ, tôi vẫn có thể chỉ tin tưởng từng chứng chỉ được tạo ( C trong trường hợp này), biết rằng tôi chỉ cần tin tưởng vào mọi chứng chỉ được tạo, thay vì một chứng chỉ đến từ CA?
ivandov

65

Đầu tiên, về sự khác biệt giữa khóa và chứng chỉ (liên quan đến "khóa CA"), có 3 phần được sử dụng khi nói về chứng chỉ khóa công khai (thường là X.509): khóa công khai, khóa riêng tư và chứng chỉ. Khóa công khai và khóa riêng tư tạo thành một cặp. Bạn có thể ký và giải mã bằng khóa riêng, bạn có thể xác minh (chữ ký) và mã hóa bằng khóa công khai. Khóa công khai nhằm mục đích được phân phối, trong khi khóa riêng có nghĩa là được giữ riêng tư.

Chứng chỉ khóa công khai là sự kết hợp giữa khóa công khai và các phần thông tin khác nhau (chủ yếu liên quan đến danh tính của chủ sở hữu cặp khóa, bất kỳ ai kiểm soát khóa cá nhân), sự kết hợp này được ký bằng khóa riêng của tổ chức phát hành chứng chỉ. Chứng chỉ X.509 có tên phân biệt chủ thể và tên phân biệt nhà phát hành. Tên tổ chức phát hành là tên chủ thể của chứng chỉ của chủ thể cấp chứng chỉ. Chứng chỉ tự ký là một trường hợp đặc biệt mà người phát hành và chủ thể đều giống nhau. Bằng cách ký vào nội dung của chứng chỉ (tức là phát hành chứng chỉ), tổ chức phát hành xác nhận nội dung của nó, cụ thể là sự ràng buộc giữa khóa, danh tính (chủ thể) và các thuộc tính khác nhau (có thể chỉ ra ý định hoặc phạm vi sử dụng cho chứng chỉ).

Trên hết, đặc tả PKIX xác định một phần mở rộng (một phần của chứng chỉ nhất định) cho biết liệu một chứng chỉ có thể được sử dụng làm chứng chỉ CA hay không, nghĩa là liệu nó có thể được sử dụng làm công cụ phát hành cho một chứng chỉ khác hay không.

Từ đó, bạn xây dựng một chuỗi chứng chỉ giữa chứng chỉ thực thể cuối (là chứng chỉ bạn muốn xác minh, dành cho người dùng hoặc máy chủ) và chứng chỉ CA mà bạn tin tưởng. Có thể có chứng chỉ CA trung gian (được cấp bởi các chứng chỉ CA khác) giữa chứng chỉ thực thể cuối của dịch vụ của bạn và chứng chỉ CA mà bạn tin tưởng. Bạn không hoàn toàn cần một CA gốc ở trên cùng (chứng chỉ CA tự ký), nhưng trường hợp này thường xảy ra (bạn có thể chọn tin tưởng trực tiếp chứng chỉ CA trung gian nếu muốn).

Đối với trường hợp sử dụng của bạn, nếu bạn tạo chứng chỉ tự ký cho một dịch vụ cụ thể, thì việc nó có cờ CA (phần mở rộng ràng buộc cơ bản) hay không không thực sự quan trọng. Bạn sẽ cần nó là chứng chỉ CA để có thể cấp các chứng chỉ khác (nếu bạn muốn xây dựng PKI của riêng mình). Nếu chứng chỉ bạn tạo cho dịch vụ này là chứng chỉ CA, thì chứng chỉ đó sẽ không gây hại gì. Điều quan trọng hơn là cách bạn có thể định cấu hình máy khách của mình để tin cậy chứng chỉ đó cho máy chủ cụ thể này (ví dụ: các trình duyệt sẽ cho phép bạn thực hiện một ngoại lệ rõ ràng khá dễ dàng). Nếu cơ chế cấu hình tuân theo mô hình PKI (không sử dụng các ngoại lệ cụ thể), vì không cần phải xây dựng chuỗi (chỉ với một chứng chỉ), bạn có thể nhập trực tiếp chứng chỉ như một phần của các neo tin cậy của khách hàng của bạn, cho dù nó '


1
Cảm ơn vì thông tin. Tôi sẽ cho Helge câu trả lời chính xác vì nó đến sớm hơn và ngắn gọn hơn. Tuy nhiên, điều này là tốt để biết.
Pace

8

Bạn có thể openssl x509 -noout -text -in $YOUR_CERTthấy sự khác biệt giữa nội dung tệp:

Trong CA tự ký của mình, bạn có thể thấy :

    X509v3 extensions:                                                          
        X509v3 Basic Constraints:
            CA:TRUE, pathlen:0

Và trong chứng chỉ tự ký của bạn, đó là:

    X509v3 extensions:                                                          
        X509v3 Basic Constraints:
            CA:FALSE

0

Bạn phải luôn có CA gốc, CA có một khóa có thể được sử dụng để ký chứng chỉ cấp thấp hơn và chứng chỉ gốc có thể được nhúng trong các chứng chỉ gốc được chấp nhận trên máy khách và được sử dụng để xác minh các chứng chỉ thấp hơn để kiểm tra chúng. có giá trị. Tự ký chỉ có nghĩa là bạn là CA của chính mình. Bất cứ khi nào tạo chứng chỉ tự ký, bạn tạo ca, sau đó ký chứng chỉ trang web với CA đó.

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.