Toàn bộ điểm của chứng chỉ SSL là để trình duyệt có mức độ tin cậy hợp lý đối với khóa chung của máy chủ cho các giao dịch HTTPS.
Đầu tiên, hãy khám phá những gì sẽ xảy ra nếu chúng ta không sử dụng chứng chỉ. Thay vào đó, máy chủ sẽ gửi khóa công khai bằng văn bản gốc và trình duyệt sẽ bắt đầu giao tiếp được mã hóa bằng cách sử dụng nó (điều đầu tiên cần làm là mã hóa khóa công khai của chính nó và gửi nó một cách an toàn). Điều gì sẽ xảy ra nếu tôi, và kẻ tấn công, nêm mình vào giữa? Tôi có thể thay thế khóa công khai của bạn bằng cách sử dụng khóa của tôi, có kết nối được mã hóa với trình duyệt, giải mã tất cả nội dung tôi nhận được, mã hóa nó bằng khóa chung của bạn và gửi nó (và ngược lại cho lưu lượng truy cập loại phản hồi). Không bên nào nhận thấy sự khác biệt, vì không ai biết các khóa công khai trước đó.
OK, vì vậy chúng tôi đã thiết lập rằng chúng tôi cần một số cách để trình duyệt tin tưởng khóa công khai của tôi. Một cách để làm điều này là lưu trữ tất cả các khóa công khai đã đăng ký trong trình duyệt. Tất nhiên, điều này sẽ yêu cầu cập nhật mỗi khi ai đó đăng ký khóa công khai và điều này sẽ dẫn đến sự phình to. Người ta cũng có thể giữ các khóa công khai trong tay máy chủ DNS 1 , nhưng máy chủ DNS cũng có thể bị giả mạo và DNS không phải là một giao thức bảo mật.
Vì vậy, lựa chọn duy nhất còn lại là "xâu chuỗi" niềm tin thông qua cơ chế ký kết. Trình duyệt lưu trữ thông tin chi tiết của một vài CA và chứng chỉ của bạn sẽ được gửi cùng với một chuỗi các chứng chỉ khác, mỗi chứng chỉ ký tên tiếp theo và đi lên CA gốc / tin cậy / được xây dựng. Công việc của CA là đảm bảo rằng tên miền thuộc về bạn trước khi ký chứng nhận cho bạn.
Vì là một CA là một doanh nghiệp, họ tính phí cho việc này. Một số nhiều hơn những người khác.
Nếu bạn tạo chứng chỉ của riêng mình, bạn sẽ gặp lỗi tương tự như:
Không có giá trị cho một chứng chỉ không dấu. Nó giống như lấy một cây bút chì và một cuốn sách nhỏ, một bản vẽ hộ chiếu tuyên bố rằng bạn là Barack Obama. Không ai sẽ tin tưởng nó.
1. Sau tất cả, mục nhập DNS của bạn được tạo khi bạn đăng ký tên miền. Sử dụng một giao thức mạnh mẽ hơn cho phép bạn đăng ký đồng thời các khóa công khai sẽ là một khái niệm thú vị.