Sni certificate là gì

Một chủ đề rất là hay trong phân vùng kiến thức về SSL hay PKI, đó là Server Name Indication [SNI] giúp cấu hình nhiều site HTTPS chạy SSL trên cùng 1 shared IP.

1. Vấn đề phát sinh ra SNI ?

Khi hosting nhiều website trên cùng 1 server vật lý, chúng ta thường sử dụng cùng 1 địa chỉ IP public và sử dụng cơ chế named-based virtual hosts của các Web Server nhằm xác định site nào sẽ được xử lý và hiển thị.

Khi trình duyệt web kết nối đến 1 website giả sử có tên miền là “cuongquach.com” trên web server hoạt động nhiều virtual host site. Nó gửi 1 HTTP request đến địa chỉ IP đã được phân giải từ tên miền “cuongquach.com”.

Trong gói tin HTTP request có trường header “Host” nhằm chỉ định thông tin tên miền website mà trình duyệt đang muốn truy xuất đến. Lúc này trên server, sau khi nhận được HTTP request này và kiểm tra giá trị HTTP header Host với các giá trị cấu hình tương ứng “Server Name” của các virtual host thì nếu trùng khớp sẽ tiến hành xử lý gói tin truy xuất.

Tuy nhiên, cách thức hoạt động này không thể áp dụng đối với các website hoạt động với chứng chỉ số SSL/TLS phương thức HTTPS tiêu chuẩn [tức TLS Protocol standard không có phần mở rộng SNI] được.

Nếu sử dụng giao thức TLS tiêu chuẩn không có phần mở rộng cần thiết, web server sẽ không thể lựa chọn đúng thông tin chứng chỉ số SSL tương ứng tên miền hostname của website vì không thể biết được thông tin chứng chỉ số nào mà người dùng đang cần biết và sẽ gửi đến người dùng sai thông tin chứng chỉ số trong quá trình thiết lập SSL/TLS kết nối [ở bước 3 như hình dưới].

 
Khi đó nếu người dùng phát hiện nhận chứng chỉ số sai thông tin tên miền khi so sánh, trình duyệt sẽ tự động ngừng kết nối đến web server nhằm ngăn chặn 1 trường hợp có khả năng thuộc dạng tấn công Man-In-The-Middle hoặc trình duyệt sẽ xuất thông báo lỗi có vấn đề với chứng chỉ số nhận được từ web server. Bởi vì , các thông tin header “Host” của gói tin HTTP chỉ có thể được gửi đến web server sau quá trình bắt tay TLS [TLS handshake] hoàn tất và kết nối SSL/TLS đã hoàn tất.

Lúc này web server chỉ có thể so sánh giá trị hostname trong gói tin HTTP request và quá muộn để lựa chọn đúng chứng chỉ số tương ứng hostname đã sử dụng trong quá trình TLS handshake. Đó cũng là một phần lý do khiến cho chúng ta hay gặp trường hợp 1 web server chỉ có thể phục vụ 1 tên miền hostname tương ứng 1 IP public nếu không sử dụng phần mở rộng SNI. Điều này khiến cho chi phí đội lên tốn kém rất nhiều.

– Người dùng muốn truy cập đến website “//cuongquach.com/” .

– Nhưng web server cấu hình nhiều virtual host hoạt động named-based virtual host không thể lựa chọn được chứng chỉ số của site “//cuongquach.com/” để gửi đến người dùng cho tới khi hoạt động TLS handshake kết thúc và bắt đầu đọc thông tin header “Host” của gói tin HTTP request từ người dùng gửi tới.


Đây chính là lúc SNI được sinh ra để giải quyết vấn đề này. Với SNI thì người dùng có thể gửi thông tin chính xác về tên miền [server_name] mà người dùng muốn truy xuất tới web server. Sau đó web server sẽ sử dụng thông tin này để lựa chọn được chứng chỉ số tương ứng website mà người dùng đang truy cập. Chúng ta sẽ đi chi tiết hơn về SNI ở phần sau.

Server Name Indication [SNI] là một phần mở rộng của giao thức TLS giúp người dùng [client] cung cấp thông tin hostname tên miền mà người dùng đang muốn truy xuất tới web server nhằm giúp web server cung cấp chính xác chứng chỉ số cho người dùng.

SNI hoạt động ở bước bắt tay TLS [TLS handshake] giữa người dùng và server, trình duyệt sẽ sẽ chèn thêm giá trị hostname [địa chỉ tên miền website] vào trong phần mở rộng của gói tin “Client Hello”, phần mở rộng này có tên là “server_name“. Giúp web server có thể lựa chọn được chứng chỉ số SSL phù hợp.

Hình ảnh bắt gói tin về SNI TLS Extension “Client Hello” [nguồn Google.com]

 
Phía server sau khi nhận được gói tin “Client Hello” có chứa trường mở rộng “server_name” sẽ tiến hành sử dụng thông tin trích xuất từ trường mở rộng này nhằm tìm kiếm lựa chọn thông tin chứng chỉ số phù hợp với thông tin tên miền [Server Name] rồi phản hồi về người dùng hoặc phải đi qua các chính sách bảo mật khác. Trong gói tin phản hồi “Server Hello” sẽ bao gồm thông tin server_name của tên miền đó.
 
Trong trường hợp, phía web server quyết định không thể sử dụng thông tin “server_name” của gói tin “Client Hello” để quyết định chọn thông tin chứng chỉ số phù hợp thì trong gói tin “Server Hello” sẽ phản hồi về người dùng thiếu thông tin liên quan hostname tên miền. Coi hình sau để hiểu thêm gói tin phản hồi “Server Hello” thiếu trường thông tin “server_name”.
 
Hình ảnh bắt gói tin về SNI TLS Extension “Server Hello” [nguồn Google.com]

 
Sử dụng tính năng SNI, server có thể dễ dàng hoạt động nhiều website với nhiều chứng chỉ số riêng biệt khác nhau, dù tất cả chỉ sử dụng chung 1 địa chỉ IP address.

 
Đặc điểm lưu ý

– SNI được khởi tạo từ phía người dùng [vd: trình duyệt người dùng] nên trình duyệt người dùng phải hỗ trợ tính năng SNI còn không thì sẽ nhận thông báo lỗi nếu kết nối đến Web Server sử dụng nhiều chứng chỉ số trên 1 shared ip.

– SNI phải được hỗ trợ cả phía web server.

– Một số phiên bản cũ của các trình duyệt không hỗ trợ SNI, đây cũng là 1 trong những nhược điểm hiện tại nhưng không quá đáng kể do ngày nay các trình duyệt đều đã hỗ trợ đầy đủ.

– Chúng ta không cần phải tách biệt từng địa chỉ IP với từng chứng chỉ số SSL.

– Thường các nhà cung cấp dịch vụ sẽ giới hạn số lượng tối đa IP đối với 1 server, nên nếu bạn chạy nhiều site sử dụng chứng chỉ số với từng IP riêng lẻ lúc này bạn không có khả năng mở rộng thêm các site chạy SSL.

– Có thể host nhiều website chạy nhiều chứng chỉ số trên cùng 1 địa chỉ shared ip.

Như vậy ta đã tìm hiểu xong phần kiến thức liên quan đến Server Name Indication [SNI].

Bạn muốn biết SNI là gì và nó hoạt động giải trí như thế nào ? Chà, bạn đã đến đúng nơi [ mặc dầu không chắc về đúng thời gian ]. Khá liên tục, công nghệ tiên tiến tuyệt vời này nằm trong tầm ngắm, và điều đó hoàn toàn có thể hiểu được phần nào. Vì vậy, ở đây chúng tôi đang làm những gì chúng tôi luôn làm – xử lý yếu tố ” kỹ thuật ” .Chúng ta hãy khám phá kỹ về công nghệ tiên tiến đó là Chỉ báo tên sever .

Địa chỉ IP và Sự trùng khớp KHÔNG phải do Thiên đường tạo ra

Giả sử bạn có năm trang web HTTP và bạn muốn chạy chúng trên một địa chỉ IP. Bạn làm nghề gì ? Bạn sử dụng máy chủ lưu trữ dựa trên tên, đó là nguyên do. Vì vậy, khi người dùng nhu yếu một website đơn cử trong số năm, nó sẽ sử dụng một tiêu đề HTTP duy nhất gồm có tên sever. Đáp lại, sever của bạn khớp với tiêu đề này và mở đường đến website được nhu yếu .

Bạn đang đọc: SNI là gì và nó hoạt động như thế nào?

Tuy nhiên, điều này sẽ không hoạt động giải trí trong trường hợp HTTPS. Đó là do tại giao thức HTTPS sử dụng kiểu bắt tay SSL / TLS để thực thi những tiếp xúc bảo đảm an toàn giữa máy khách [ trình duyệt ] và sever. Tiêu đề HTTP sẽ chỉ được gửi khi quy trình bắt tay kết thúc. Vì sever không hề nhìn thấy thông tin hiện hữu trong tiêu đề HTTP, nó không hề biết website nào sẽ phản hồi với .

SNI đã tiết kiệm như thế nào trong ngày [và tiền!]

Trước khi SNI được ra mắt, người ta phải mua một địa chỉ IP duy nhất cho mọi chứng từ SSL mà họ có. Điều này dẫn đến ngân sách lớn và tiêu thụ nhanh gọn địa chỉ IP IPv4. Nếu không dừng lại, nó sẽ dẫn đến việc hết sạch nhanh gọn những địa chỉ IP IPv4 vì chỉ hoàn toàn có thể có khoảng chừng 4 tỷ địa chỉ IPv4. Sự hết sạch này là không hề tránh khỏi, nhưng mục tiêu là để trì hoãn nó càng nhiều càng tốt để phân phối cho người dùng đủ thời hạn để chuyển dời sang IPv6, hoàn toàn có thể có khoảng chừng 340 triệu địa chỉ IP [ Vâng, đó là một số lượng ! ] .

Đó là lý do tại sao SNI phải được giới thiệu.

Xem thêm: Download .Net Framework 4.0, 4.6, 4.7, 4.8 mới nhất cho Win 10, 7

Chỉ báo tên máy chủ [SNI], một phần mở rộng của giao thức SSL / TLS, cho phép nhiều chứng chỉ SSL được lưu trữ trên một địa chỉ IP duy nhất. SNI thực hiện điều này bằng cách chèn tiêu đề HTTP [miền ảo] trong quá trình bắt tay SSL / TLS. Vì máy chủ có thể nhìn thấy miền ảo, nó phục vụ khách hàng với trang web mà họ yêu cầu.

Một đôi bên cùng có lợi cho tổng thể mọi người !

SNI có khả năng mở rộng không?

Mối chăm sóc lớn nhất và có lẽ rằng là duy nhất với SNI là năng lực lan rộng ra của nó. Ban đầu, không có nhiều trình duyệt web và sever tương hỗ công nghệ tiên tiến SNI. Ngày nay, viễn cảnh đó đã bị đảo lộn. Gần 98 % người mua nhu yếu website tương hỗ HTTPS tương hỗ SNI .Vì vậy, bạn không cần phải lo ngại về việc mất người theo dõi của mình .

Chúng tôi đã học được gì?

  • TLS SNI cho phép chạy nhiều chứng chỉ SSL trên một địa chỉ IP.
  • SNI chèn tiêu đề HTTP trong quá trình bắt tay SSL / TLS để trình duyệt có thể được chuyển hướng đến trang web được yêu cầu.
  • Gần 98% khách hàng yêu cầu HTTPS hỗ trợ SNI.
  • SNI giúp bạn tiết kiệm tiền vì bạn không phải mua nhiều địa chỉ IP.

Source: kubet
Category: Tải Phầm Mềm

Video liên quan

Chủ Đề