Bài này chúng ta sẽ cùng tìm hiểu về HTTPS và chữ ký số tại Let’s Encrypt một CA (Certificate Authority) cung cấp SSL Certificate miễn phí mới ra đời năm 2015.
Bởi gần đây google đã tăng tín nhiệm với những website sử dụng chứng chỉ SSL và phân biệt rõ ràng website dùng SSL trên trình duyệt Chrome. Cộng đồng webmaster đang rất nóng với thông tin này nên mình cũng vọc vạch một chút xem sao.
Cài SSL cho Website ngoài việc để đảm bảo dữ liệu truyền đi trên internet được mã hóa an toàn, đặc biệt với trang web thương mại điện tử. Nó còn giải quyết khâu oai và nâng tầm thương hiệu nữa.
Khi truy cập trang web nào đó nhìn thanh địa chỉ (Address Bar) có hình cái khóa màu xanh là khoái rồi. Nhìn thì đẹp thật nhưng với những web blog nhỏ việc đầu tư một khoản tiền cả trăm $ mua SSL cho cả domain và subdomain (SSL Wildcard) là khoản đầu tư lớn đáng phải suy nghĩ.
Để bắt đầu, chúng ta cùng tìm hiểu về giao thức HTTPS sau đó mình sẽ nói về Let’s Encrypt sau.
1. Cách hoạt động của HTTPS
HTTPS là gì ?
HTTPS (Hyper Text Transfer Protocol Secure) là sự kết hợp của giao thức SSL và HTTP. Nếu ai bảo bạn là trang web dùng SSL là người ta đang nói về HTTPS đó.
Để tạo được một kết nối HTTPS thì phải có 3 thành phần tham gia Client, Web Server, CA.
Trong đó:
Client là các trình duyệt web như Chrome, Firefox…
Web Server là máy chủ chạy Website bạn muốn truy cập, nó thường là Nginx, Apache…
CA hiểu là đơn vị cung cấp chứng chỉ SSL.
Trong hệ thống phân cấp CA, đứng cao nhất là Root CA tiếp theo là Intermediate CA. Một số CA nổi tiếng như như Comodo, RapidSSL, GeoTrust, Symantec… Ngoài việc bán SSL Certificate cho Web Server, nó còn có chức năng thẩm định tính hợp lệ của chứng chỉ cấp cho Web Server khi Client yêu cầu.
HTTPS làm việc như thế nào ?
Bước 1: Client gửi request bằng cách nhập Address Bar trên trình duyệt https://thuysys.xyz
Bước 2: Web Server nhận được request và gửi lại cho Client certificate của nó và Public Key. Public Key này được sinh ra từ Private Key của Web Server.
Bước 3: Client nhận được certificate nó sẽ lấy thông tin về CA trong certificate ví dụ CA – Comodo chẳng hạn. Sau đó Client kết nối đến Comodo xác nhận (verify) thông tin về Web Server bao gồm IP, Domain, Address, Valid…
Nếu thông tin chính xác, Client sẽ sinh ra một khóa khác gọi là Session Key để sau này mã hóa dữ liệu truyền đi giữa Client – Web Server. Đồng thời dùng Public Key mã hóa thông tin và Session Key gửi ngược lại Web Server.
Bước 4: Web Server nhận được gói tin dùng Private Key giải mã lấy ra Session Key và dùng nó để mã hóa dữ liệu trao đổi giữa Client – Web Server sau này.
Nguyên tắc hoạt động HTTPS chỉ có thế. Khi trang web dùng HTTPS mà gặp lỗi bạn có thể áp dụng nguyên tắc trên có thể phán đoán được phần nào nguyên nhân gây lỗi SSL.
Ví dụ lỗi không hiện ổ khóa màu xanh.
Nguyên nhân chủ yếu do
- Client không verify được với CA như Bước 3 ở trên, thường do cấu hình Web Server không đúng hoặc chứng chỉ đã hết hạn (expired).
- Cũng có khi đây là chứng chỉ dạng tự cung tự cấp do chính bạn tạo ra hay còn gọi là Self-Signed SSL Certificate được dùng trong nội bộ doanh nghiệp.
- Hoặc trang web của bạn chứa link HTTP (Link trỏ đến trang web dùng HTTP, link hình ảnh cũ được upload trước đây vẫn dùng HTTP)
Giao thức HTTPS vắn tắt là như vậy, giờ cúng ta tìm hiểu tiếp Let’s Encrypt là gì ?
2. Tìm hiểu Lest’s Encrypt
Trước hết, Let’s Encrypt ra đời để giải quyết vấn đề “ngon bổ rẻ”, cung cấp cho người dùng một Open Certificate chất lượng mà hoàn toàn Free nhằm tạo ra môi trường internet bảo mật hơn. Bởi theo thống kê của Mozilla hiện có đến 60% giao dịch trực tuyến không sử dụng HTTPS. Đồng thời thời tự động hoá cách thức vận hành và sử dụng chứng chỉ SSL truyền thống, không còn rườm rà như trước nữa.
Let’s Encrypt là tổ chức lớn, được hỗ trợ bởi nhiều đại gia công nghệ Facebook, Chrome, Mozilla…
Ra đời mới từ 3/12/2015 Let’s Encrypt hiện đang là đơn vị cung chứng chỉ SSL miễn phí uy tín, có tốc độ tăng trường khủng, chưa đầy 1 năm đã có gần 5 triệu domain sử dụng.
Let’s Encrypt là một CA cung cấp chứng chỉ SSL dạng Domain Validation. Nghĩa là người dùng không cần giấy tờ xác minh công ty, tổ chức, chỉ cần domain là đủ. Điều này rất khuyến khích người sử dụng bởi những blog cùi như thuysys.com thì hơi đâu mà cung cấp giấy tờ xác minh.
Đặc điểm chứng chỉ Let’s Encrypt
- Chứng chỉ SSL Free, hiển nhiên rồi.
- Dùng cho nhiều Domain dạng Wildcard về cơ bản là không giới hạn domain/subdomain.
- Thanh địa chỉ với hình cái khoá màu xanh, tuyệt vời.
- Chỉ cần xác mình Domain.
- Cài đặt đơn giản.
- Gia hạn sau 90 ngày, đây là hạn chế của Let’s Encrypt, nhưng bạn hoàn toàn có thể renew chứng chỉ.
Hạn mức
- Names/Certificate quy định bạn chỉ có thể dùng tối đa 100 domain hoặc website trên một chứng chỉ.
- Certificates/Domain cùng một domain bạn chỉ có thể dùng tối đa 20 chứng chỉ mỗi tuần.
- Certificates/FQDNset với domain chính xác dạng FQDN (Fully Qualified Domain Names), bị giới hạn 05 chứng chỉ một tuần. Ví dụ www.thuysys.com và blog.thuysys.com được tính là hai FQDN.
- Registrations/IP address mỗi IP chỉ được đăng ký tối đa 500 lần trong 3 giờ.
- Pending Authorizations/Account dành cho những khách hàng ACME, họ có thể nhận được sự ủy quyền tối đa 300 account mỗi tuần.
Mình thì chưa dùng nhiều Let’s Encrypt nên chưa có trải nghiệm về những hạn mức này, bạn nào đã dùng rồi thì comment phổ biến cho anh em phát.
3. Cách hoạt động của Let’s Encrypt
Cách lấy chứng chỉ tại Let’s Encrypt khác với việc mua chứng chỉ trên website của các CA mà bạn từng biết. Bạn phải kết nối đến Let’s Encrypt Server để lấy chứng chỉ bằng một công cụ gọi là Let’s Encrypt Client.
Nhờ Let’s Encrypt Client mà việc cài đặt, cấu hình chứng chỉ SSL diễn ra hoàn toàn tự động mà không cần gửi/nhận mail qua lại mất thời gian như trước nữa.
Có nhiều Client có thể làm việc này: Certbot, Letsencrypt.sh (Bash), Lua-resty-auto-ssl (nginx), AcmePHP (PHP), Let’s ACME (Python) …
Để tự động quá trình sử dụng cũng như gia hạn (renewal), thu hồi (revoke), đăng ký mới (register) trên các loại Web Server khác nhau Let’s Encrypt Client thường được kêt hợp với một số Plugin sau.
- apache được dùng với các Web Server Apache để nhận và install chứng chỉ một cách tự động.
- webroot plugin này phù hợp khi Web Server và Let’s Encrypt Client chạy trên cùng một máy. Theo mình bạn nào chạy VPS dùng plugin này tốt nhất.
- standalone dùng khi Web Server nằm trên một máy chủ khác. Bởi plugin này sẽ chiếm dụng Port 80/443 khi dùng dấn đến Web Server sẽ bị gián đoạn.
- manual cái này chắc không dùng vì phải làm thủ công hơi oải.
- nginx dùng cho Web Server nginx, cơ mà nó đang thử nghiệm nên không sài là hơn.
4. Sự khác nhau giữa chứng chỉ trả phí và Free.
Trong thực tế dùng có thể nhận thấy sự khác nhau lớn nhất giữa chứng chỉ trả phí và chứng chỉ Free Let’s Encrypt là việc phải gia hạn chứng chỉ sau 90 ngày (bạn có thể tạo Cron Job để tự động gia hạn chứng chỉ).
Cài đặt chứng chỉ Let’s Encrypt đời hỏi bạn phải biết sử dụng máy chủ hay VPS một chút.
Một số người có nói chứng chỉ Free này không tương thích với nhiều trình duyệt. Mình thì chưa kiểm chứng hết các trình duyệt, những thấy dùng trên Chrome, Firefox, Edge, Safari ngon là được rồi. Mấy trình duyệt lạ hoặc ít dùng chẳng quan trọng.
Đấy là một vài nhược điểm của Let’s Encrypt bạn cần chú ý.
Còn theo mình những hạn chế đó là chấp nhận được. Let’s Encrypt có ưu điểm nhiều hơn, bạn đã được dùng chứng chỉ SSL free, dùng gần như là không giới hạn với nhiều domain, việc lấy chứng chỉ hoàn toàn tự động chẳng phải mail qua mail lại mất thời gian.
5. Kết bài
Xu hướng dùng chuyển sang dùng SSL của Let’s Encypt ngày càng nhiều, các nhà cung cấp Hosting cũng đang rầm rộ chuyển chuyển đổi, một số cái tên như Hawkhost, A2hosting, StableHost …
Trên đây mình đã cung cập một số thông tin cơ bản về HTTPS và tổng quan về Let’s Encrypt cho các bạn.
Let’s Encrypt thực sự là một nhà cung cấp chứng chỉ SSL miễn phí mà bạn nên nghiên cứu và dùng cho web site của mình. Với sự hỗ trợ của Let’s Encrypt Client & Plugin việc triển khai chữ ký số trở nên đơn giản đi rất nhiều.
Một số cách cấu hình SSL trên VPS bạn nên đọc.
Chào tạm biệt, hẹn gặp các bạn ở bài tới.
Thủy là một thanh niên cứng, gương mẫu, it nói, biết khâu vá, thích ăn thịt chó rất vui khi có ai gọi đi nhậu.
alo nha …. thèm thịt chó quá ….