Kiến thức Hữu ích 😍

Hướng Dẫn Lấy Chứng Chỉ SSL Certbot Cho Ubuntu 20.04 An Toàn


Bảo mật website là yếu tố sống còn trong thế giới số hiện nay. Một trong những nền tảng cốt lõi của bảo mật chính là chứng chỉ SSL là gì. Vậy làm thế nào để trang bị “tấm khiên” này cho website của bạn, đặc biệt là khi sử dụng máy chủ Ubuntu 20.04? Rất may, công cụ Certbot và Let’s Encrypt đã ra đời để đơn giản hóa quy trình này, cho phép bạn lấy chứng chỉ SSL hoàn toàn miễn phí. Bài viết này sẽ là kim chỉ nam, hướng dẫn bạn từng bước chi tiết cách lấy và cài đặt chứng chỉ SSL trên Ubuntu 20.04 bằng Certbot. Hãy cùng AZWEB khám phá cách bảo vệ website của bạn một cách an toàn, hiệu quả và tự động nhé!

Giới thiệu về chứng chỉ SSL và tầm quan trọng trong bảo mật website

Chứng chỉ SSL (Secure Sockets Layer) là một tiêu chuẩn công nghệ bảo mật toàn cầu. Về cơ bản, nó tạo ra một liên kết được mã hóa là gì giữa máy chủ web (web server) và trình duyệt của người dùng. Liên kết này đảm bảo rằng tất cả dữ liệu trao đổi giữa hai bên đều được giữ riêng tư và an toàn, không thể bị bên thứ ba đọc trộm hay can thiệp. Bạn có thể nhận biết một website được bảo vệ bằng SSL qua biểu tượng ổ khóa trên thanh địa chỉ và tiền tố “Https là gì” thay vì “http”.

Hình minh họa

Vai trò của SSL không chỉ dừng lại ở việc mã hóa dữ liệu. Nó còn là một công cụ xây dựng niềm tin mạnh mẽ. Khi người dùng truy cập vào một trang web có chứng chỉ SSL hợp lệ, họ biết rằng thông tin cá nhân, mật khẩu hay dữ liệu thẻ tín dụng của mình đang được bảo vệ. Điều này đặc biệt quan trọng đối với các trang web thương mại điện tử, dịch vụ tài chính, hoặc bất kỳ nền tảng nào yêu cầu người dùng đăng nhập và cung cấp thông tin nhạy cảm. Thiếu SSL có thể khiến khách hàng tiềm năng ngần ngại và rời đi.

Hơn nữa, SSL còn có tác động trực tiếp đến thứ hạng SEO của website. Từ năm 2014, Google đã chính thức thông báo rằng HTTPS là một tín hiệu xếp hạng. Các trang web sử dụng SSL sẽ được ưu tiên hơn trong kết quả tìm kiếm. Các trình duyệt phổ biến như Chrome và Firefox cũng hiển thị cảnh báo “Không bảo mật” đối với các trang không có SSL, gây ảnh hưởng tiêu cực đến trải nghiệm và tỷ lệ thoát trang. Trong bài viết này, chúng ta sẽ đi sâu vào quy trình sử dụng Certbot trên Ubuntu 20.04 để lấy chứng chỉ SSL miễn phí, giúp bạn nâng cao bảo mật, cải thiện SEO và tạo dựng uy tín cho website của mình.

Yêu cầu hệ thống và chuẩn bị môi trường Ubuntu 20.04

Trước khi bắt đầu hành trình bảo mật website, việc chuẩn bị một môi trường sạch sẽ và đáp ứng đủ yêu cầu là bước đầu tiên và quan trọng nhất. Điều này đảm bảo quá trình cài đặt Certbot và lấy chứng chỉ SSL diễn ra suôn sẻ, không gặp phải những lỗi không đáng có.

Yêu cầu phần cứng và phần mềm cơ bản

Để chạy Ubuntu 20.04 và Certbot một cách ổn định, bạn không cần một cấu hình phần cứng quá cao. Một máy chủ ảo (VPS) hoặc máy chủ riêng với cấu hình tối thiểu là đủ. Cụ thể, bạn nên có ít nhất 1GB RAM và 1 CPU core. Dung lượng ổ cứng cần khoảng 10GB trống để hệ điều hành và các ứng dụng có không gian hoạt động thoải mái. Tất nhiên, nếu website của bạn có lưu lượng truy cập lớn, bạn nên cân nhắc nâng cấp cấu hình để đảm bảo hiệu suất.

Về phần mềm, phiên bản hệ điều hành được khuyến nghị là Ubuntu 20.04 LTS (Focal Fossa). Đây là phiên bản hỗ trợ dài hạn, đảm bảo bạn nhận được các bản vá bảo mật và cập nhật ổn định trong nhiều năm. Certbot tương thích rất tốt với phiên bản này, giúp việc cài đặt và cấu hình trở nên dễ dàng hơn bao giờ hết. Ngoài ra, bạn cần có một máy chủ web đã được cài đặt và hoạt động, phổ biến nhất là Apache hoặc Nginx.

Chuẩn bị môi trường trước khi cài đặt

Bước đầu tiên trước khi cài đặt bất kỳ phần mềm nào là cập nhật hệ thống. Việc này đảm bảo tất cả các gói phần mềm hiện có trên máy chủ của bạn đều ở phiên bản mới nhất, giúp tránh các xung đột và lỗ hổng bảo mật. Hãy chạy lệnh sau trong terminal:

sudo apt update && sudo apt upgrade -y

Bạn cần có quyền root hoặc quyền sudo để thực thi các lệnh quản trị hệ thống. Hầu hết các nhà cung cấp VPS đều cung cấp tài khoản có sẵn quyền sudo. Nếu không, bạn cần liên hệ với quản trị viên hệ thống của mình.

Hình minh họa

Yếu tố quan trọng nhất để Let’s Encrypt cấp chứng chỉ SSL là bạn phải chứng minh được quyền sở hữu tên miền. Điều này được thực hiện thông qua việc cấu hình DNS. Bạn cần trỏ một bản ghi A (cho địa chỉ IPv4) hoặc AAAA (cho địa chỉ IPv6) từ tên miền (và các tên miền phụ như www) về địa chỉ IP công khai của máy chủ Ubuntu. Ví dụ, cả `yourdomain.com` và `www.yourdomain.com` đều phải trỏ về IP của server. Nếu DNS chưa được cấu hình đúng, Certbot sẽ không thể xác thực và quá trình cấp phát chứng chỉ sẽ thất bại.

Cài đặt và cấu hình Certbot trên Ubuntu 20.04

Sau khi đã chuẩn bị xong môi trường, bước tiếp theo là cài đặt Certbot – công cụ mạnh mẽ giúp tự động hóa việc lấy và gia hạn chứng chỉ SSL từ Let’s Encrypt. Quá trình này khá đơn giản nhờ vào kho phần mềm phong phú của Ubuntu.

Cài đặt Certbot và các gói liên quan

Certbot được duy trì bởi Electronic Frontier Foundation (EFF) và có sẵn trong kho phần mềm mặc định của Ubuntu. Tuy nhiên, để đảm bảo bạn có được phiên bản mới nhất và các plugin tương thích với máy chủ web của mình, chúng ta nên sử dụng kho phần mềm do chính đội ngũ Certbot cung cấp. Đầu tiên, hãy thêm kho phần mềm PPA của Certbot:

sudo add-apt-repository ppa:certbot/certbot

Sau khi nhấn Enter để xác nhận, hãy cập nhật lại danh sách gói của bạn:

sudo apt update

Hình minh họa

Bây giờ, bạn có thể tiến hành cài đặt Certbot. Tùy thuộc vào máy chủ web bạn đang sử dụng (Apache hoặc Nginx), lệnh cài đặt sẽ hơi khác nhau. Các gói python3-certbot-apache hoặc python3-certbot-nginx là các plugin giúp Certbot tự động nhận diện và cấu hình SSL cho máy chủ web của bạn.

Nếu bạn dùng Nginx, hãy chạy lệnh:

sudo apt install certbot python3-certbot-nginx

Nếu bạn dùng Apache, hãy chạy lệnh:

sudo apt install certbot python3-certbot-apache

Các gói đi kèm này đóng vai trò then chốt. Chúng không chỉ cài đặt Certbot mà còn tích hợp nó một cách liền mạch với máy chủ web, cho phép Certbot đọc cấu hình hiện tại, tự động thêm các dòng lệnh cần thiết để kích hoạt SSL và thậm chí là thiết lập chuyển hướng từ HTTP sang HTTPS.

Cấu hình ban đầu và kiểm tra Certbot hoạt động

Sau khi quá trình cài đặt hoàn tất, một ý tưởng hay là kiểm tra để chắc chắn rằng Certbot đã được cài đặt đúng cách và sẵn sàng hoạt động. Bạn có thể làm điều này bằng cách kiểm tra phiên bản của nó. Hãy chạy lệnh sau trong terminal:

certbot --version

Lệnh này sẽ hiển thị phiên bản Certbot hiện tại đã được cài đặt trên hệ thống của bạn. Nếu bạn thấy số phiên bản xuất hiện, điều đó có nghĩa là quá trình cài đặt đã thành công. Đây là một bước kiểm tra đơn giản nhưng rất quan trọng, giúp bạn tự tin chuyển sang giai đoạn tiếp theo là lấy chứng chỉ SSL cho tên miền của mình. Nếu có lỗi xảy ra ở bước này, bạn nên xem lại các bước cài đặt trước đó để khắc phục.

Hình minh họa

Hướng dẫn lấy chứng chỉ SSL miễn phí bằng Certbot

Khi Certbot đã sẵn sàng, đây là lúc thực hiện phần việc chính: yêu cầu Let’s Encrypt cấp chứng chỉ SSL cho tên miền của bạn. Certbot tự động hóa phần lớn quy trình, giúp bạn tiết kiệm rất nhiều thời gian và công sức.

Lấy SSL chứng chỉ cho Apache/Nginx

Certbot cung cấp các plugin chuyên dụng cho Apache và Nginx, giúp việc lấy và cài đặt chứng chỉ trở nên cực kỳ đơn giản. Bạn chỉ cần chạy một lệnh duy nhất, và plugin sẽ tự động quét các tệp cấu hình virtual host của bạn để tìm ra các tên miền có thể áp dụng SSL.

Đối với người dùng Nginx, lệnh cần chạy là:

sudo certbot --nginx

Đối với người dùng Apache, lệnh tương ứng là:

sudo certbot --apache

Sau khi chạy lệnh, Certbot sẽ bắt đầu một trình hướng dẫn tương tác ngay trong terminal. Nó sẽ yêu cầu bạn cung cấp một số thông tin:

  • Địa chỉ email: Dùng để gửi thông báo quan trọng, đặc biệt là thông báo khi chứng chỉ sắp hết hạn.
  • Điều khoản dịch vụ: Bạn cần đồng ý với các điều khoản của Let’s Encrypt để tiếp tục.
  • Chia sẻ email: Bạn có thể chọn có hoặc không chia sẻ email của mình với Electronic Frontier Foundation (EFF).
  • Chọn tên miền: Certbot sẽ liệt kê tất cả các tên miền nó tìm thấy trong tệp cấu hình của bạn. Bạn có thể chọn một, nhiều hoặc tất cả các tên miền để cài đặt SSL.

Quá trình này rất trực quan và dễ thực hiện. Chỉ cần đọc kỹ các câu hỏi và lựa chọn phù hợp, Certbot sẽ lo phần còn lại.

Xác thực quyền sở hữu tên miền

Để cấp chứng chỉ, Let’s Encrypt cần chắc chắn rằng bạn thực sự là người kiểm soát tên miền đó. Certbot hỗ trợ hai phương pháp xác thực chính: HTTP Challenge và DNS Challenge.

HTTP Challenge (xác thực qua HTTP): Đây là phương pháp phổ biến và đơn giản nhất. Certbot sẽ tạo một tệp tin tạm thời với nội dung ngẫu nhiên và đặt nó vào một thư mục đặc biệt trên máy chủ web của bạn (/.well-known/acme-challenge/). Sau đó, Let’s Encrypt sẽ thử truy cập vào tệp tin đó qua địa chỉ http://yourdomain.com/.well-known/acme-challenge/<tên-tệp-ngẫu-nhiên>. Nếu truy cập thành công và nội dung tệp tin khớp, bạn đã chứng minh được quyền sở hữu. Phương pháp này yêu cầu máy chủ của bạn phải có thể truy cập được từ internet qua cổng 80 (HTTP).

Hình minh họa

DNS Challenge (xác thực qua DNS): Với phương pháp này, Certbot sẽ yêu cầu bạn tạo một bản ghi TXT đặc biệt trong cài đặt DNS của tên miền. Let’s Encrypt sau đó sẽ truy vấn máy chủ DNS để kiểm tra sự tồn tại của bản ghi này. Phương pháp này hữu ích khi máy chủ của bạn không mở cổng 80 hoặc khi bạn muốn lấy chứng chỉ cho tên miền đại diện (wildcard certificate, ví dụ: *.yourdomain.com). Tuy nhiên, nó phức tạp hơn và việc tự động hóa gia hạn có thể khó khăn nếu nhà cung cấp DNS của bạn không hỗ trợ API.

Lời khuyên của AZWEB là nếu bạn có một cấu hình máy chủ web tiêu chuẩn, hãy chọn phương pháp HTTP Challenge. Khi bạn chạy lệnh sudo certbot --nginx hoặc --apache, đây là phương pháp mặc định được sử dụng, giúp quá trình diễn ra hoàn toàn tự động.

Cách cấu hình máy chủ để sử dụng chứng chỉ SSL vừa lấy

Sau khi Certbot đã xác thực thành công tên miền và lấy được chứng chỉ, bước tiếp theo là cấu hình máy chủ web của bạn để bắt đầu sử dụng nó. Một lần nữa, Certbot lại thể hiện sự thông minh của mình bằng cách tự động hóa gần như toàn bộ công việc này.

Tự động cập nhật cấu hình máy chủ web

Một trong những ưu điểm lớn nhất của việc sử dụng plugin Nginx hoặc Apache là Certbot có thể tự động sửa đổi các tệp cấu hình của bạn. Sau khi lấy chứng chỉ, Certbot sẽ hỏi bạn có muốn tự động chuyển hướng tất cả lưu lượng truy cập từ HTTP sang HTTPS hay không. Đây là một tùy chọn rất được khuyến khích.

Bạn sẽ thấy một câu hỏi tương tự như: “Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.” (Vui lòng chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không, loại bỏ truy cập HTTP.)

  1. No Redirect: Không chuyển hướng. Cả HTTP và HTTPS đều hoạt động.
  2. Redirect: Chuyển hướng tất cả các yêu cầu từ HTTP sang HTTPS.

Hình minh họa

Bạn nên chọn tùy chọn 2 (Redirect). Khi đó, Certbot sẽ tự động thêm các quy tắc chuyển hướng cần thiết vào tệp cấu hình virtual host của bạn. Ví dụ, đối với Nginx, nó sẽ thêm một khối server mới để lắng nghe trên cổng 80 và trả về một mã chuyển hướng 301 (Moved Permanently) tới phiên bản HTTPS tương ứng. Đối với Apache, nó sẽ thêm các quy tắc RewriteRule trong tệp cấu hình của bạn.

Việc này đảm bảo rằng tất cả người dùng, dù họ gõ http:// hay https://, đều sẽ được tự động đưa đến phiên bản an toàn của website. Đây là một bước quan trọng để đảm bảo tính nhất quán và bảo mật cho toàn bộ trang web.

Kiểm tra và khởi động lại dịch vụ web

Trước khi áp dụng các thay đổi, Certbot thường sẽ tự động kiểm tra cú pháp của tệp cấu hình để đảm bảo không có lỗi nào được tạo ra. Tuy nhiên, bạn cũng có thể tự mình kiểm tra lại để chắc chắn. Đây là một thói quen tốt giúp bạn tránh làm gián đoạn dịch vụ.

Đối với Nginx, sử dụng lệnh:

sudo nginx -t

Nếu kết quả trả về là “syntax is ok” và “test is successful”, mọi thứ đều ổn.

Đối với Apache, sử dụng lệnh:

sudo apache2ctl configtest

Nếu bạn nhận được thông báo “Syntax OK”, cấu hình của bạn đã hợp lệ.

Sau khi xác nhận cấu hình không có lỗi, bạn cần khởi động lại dịch vụ web để các thay đổi có hiệu lực. Certbot thường sẽ tự động làm điều này, nhưng nếu không, bạn có thể chạy lệnh thủ công:

Đối với Nginx:

sudo systemctl restart nginx

Đối với Apache:

sudo systemctl restart apache2

Sau khi dịch vụ khởi động lại, website của bạn đã chính thức được bảo vệ bởi SSL. Hãy thử truy cập trang web bằng https://yourdomain.com để tận hưởng thành quả.

Kiểm tra và xác nhận chứng chỉ SSL đã hoạt động hiệu quả

Việc cài đặt thành công chỉ là một nửa câu chuyện. Bạn cần phải kiểm tra và xác nhận rằng chứng chỉ SSL đang hoạt động đúng cách, mã hóa kết nối và không có bất kỳ lỗi nào có thể ảnh hưởng đến trải nghiệm người dùng hoặc bảo mật.

Kiểm tra trực tiếp trên trình duyệt

Cách đơn giản và nhanh nhất để kiểm tra là truy cập website của bạn bằng trình duyệt web. Hãy mở Chrome, Firefox, hoặc bất kỳ trình duyệt nào khác và gõ vào địa chỉ trang web của bạn với tiền tố https://, ví dụ: https://yourdomain.com.

Hãy chú ý đến thanh địa chỉ. Nếu mọi thứ hoạt động chính xác, bạn sẽ thấy một biểu tượng ổ khóa nhỏ xuất hiện bên cạnh URL. Biểu tượng này là dấu hiệu cho thấy kết nối giữa trình duyệt của bạn và máy chủ web đã được mã hóa an toàn. Bạn có thể nhấp vào biểu tượng ổ khóa để xem thêm thông tin chi tiết về chứng chỉ, bao gồm tổ chức cấp phát (sẽ là Let’s Encrypt), tên miền được cấp và ngày hết hạn.

Hình minh họa

Ngoài ra, hãy thử truy cập phiên bản http:// của trang web. Nếu bạn đã chọn tùy chọn chuyển hướng khi cấu hình Certbot, trình duyệt sẽ tự động chuyển bạn đến phiên bản https://. Đây là một dấu hiệu tốt cho thấy cấu hình chuyển hướng của bạn đang hoạt động hiệu quả.

Sử dụng công cụ kiểm tra SSL online

Để có một đánh giá sâu hơn và chuyên nghiệp hơn về cấu hình SSL của bạn, bạn nên sử dụng các công cụ kiểm tra trực tuyến. Một trong những công cụ uy tín và phổ biến nhất là SSL Labs’ SSL Server Test, được cung cấp bởi Qualys.

Hãy truy cập vào trang web của SSL Labs, nhập tên miền của bạn vào và bắt đầu quá trình quét. Công cụ này sẽ thực hiện một loạt các bài kiểm tra chi tiết về cấu hình máy chủ của bạn, bao gồm:

  • Chất lượng chứng chỉ: Xác minh chuỗi tin cậy của chứng chỉ.
  • Cấu hình giao thức: Kiểm tra các phiên bản SSL/TLS được hỗ trợ (ví dụ: TLS 1.2, TLS 1.3).
  • Bộ mã hóa (Cipher Suites): Phân tích các thuật toán mã hóa được máy chủ hỗ trợ và đánh giá độ mạnh của chúng.
  • Các lỗ hổng phổ biến: Quét tìm các lỗ hổng đã biết như POODLE, Heartbleed, v.v.

Sau khi hoàn tất, SSL Labs sẽ cho bạn một điểm số tổng thể từ A+ đến F. Mục tiêu của bạn là đạt được điểm A hoặc A+. Nếu có bất kỳ vấn đề nào, báo cáo sẽ cung cấp thông tin chi tiết và gợi ý cách khắc phục. Sử dụng công cụ này giúp bạn không chỉ xác nhận SSL hoạt động mà còn đảm bảo rằng nó được cấu hình theo các tiêu chuẩn bảo mật cao nhất.

Khắc phục lỗi thường gặp khi lấy và cài đặt chứng chỉ SSL

Mặc dù Certbot đã làm cho quá trình trở nên rất đơn giản, đôi khi bạn vẫn có thể gặp phải một số lỗi. Hiểu rõ nguyên nhân và cách khắc phục các vấn đề phổ biến sẽ giúp bạn tiết kiệm thời gian và giảm bớt căng thẳng.

Lỗi không thể xác minh quyền sở hữu tên miền

Đây là lỗi phổ biến nhất, thường xảy ra trong quá trình xác thực HTTP Challenge. Thông báo lỗi có thể là “Failed authorization procedure” hoặc “Could not connect to http://yourdomain.com”. Nguyên nhân chính thường liên quan đến DNS hoặc tường lửa (Firewall là gì).

Nguyên nhân và cách khắc phục:

  • DNS chưa cập nhật: Khi bạn mới thay đổi bản ghi A cho tên miền, có thể mất một khoảng thời gian (từ vài phút đến vài giờ) để thay đổi này được cập nhật trên toàn bộ hệ thống DNS toàn cầu. Let’s Encrypt có thể đang truy vấn một máy chủ DNS cũ chưa có thông tin mới. Hãy kiên nhẫn chờ đợi hoặc sử dụng các công cụ như dnschecker.org để kiểm tra xem IP đã được cập nhật ở nhiều nơi chưa.
  • Cấu hình DNS sai: Kiểm tra lại xem bạn đã trỏ đúng bản ghi A (hoặc AAAA) về địa chỉ IP công khai của máy chủ chưa. Một lỗi nhỏ như gõ sai một số trong địa chỉ IP cũng có thể gây ra lỗi này.
  • Website chưa hoạt động trên HTTP: Phương pháp xác thực HTTP yêu cầu website của bạn phải có thể truy cập được qua cổng 80. Nếu máy chủ web của bạn chưa được cấu hình để phục vụ tên miền đó, Let’s Encrypt sẽ không thể tìm thấy tệp xác thực. Hãy đảm bảo bạn đã có một khối server (Nginx) hoặc VirtualHost (Apache) cơ bản cho tên miền của mình.

Lỗi port 80/443 bị chặn hoặc máy chủ không phản hồi

Một lỗi phổ biến khác là khi máy chủ của Let’s Encrypt không thể kết nối đến máy chủ của bạn qua cổng 80 (cho xác thực HTTP) hoặc cổng 443 (cho kết nối HTTPS sau này). Thông báo lỗi thường là “Connection refused” hoặc “Timeout”.

Nguyên nhân và cách khắc phục:

  • Tường lửa chặn kết nối: Đây là nguyên nhân hàng đầu. Tường lửa trên máy chủ của bạn (như UFW – Uncomplicated Firewall) hoặc tường lửa của nhà cung cấp dịch vụ đám mây (như AWS Security Groups, Google Cloud Firewall) có thể đang chặn các kết nối đến. Hãy kiểm tra và đảm bảo rằng bạn đã cho phép lưu lượng truy cập đến trên cổng 80 (HTTP) và 443 (HTTPS). Với UFW, bạn có thể chạy lệnh:

sudo ufw allow 'Nginx Full' (cho Nginx) hoặc sudo ufw allow 'Apache Full' (cho Apache).

Và sau đó kiểm tra trạng thái bằng: sudo ufw status.

Hình minh họa

  • Dịch vụ web không chạy: Đảm bảo rằng dịch vụ Nginx hoặc Apache của bạn đang hoạt động. Bạn có thể kiểm tra trạng thái bằng lệnh sudo systemctl status nginx hoặc sudo systemctl status apache2. Nếu dịch vụ không chạy, hãy thử khởi động lại nó.
  • Lỗi cấu hình mạng: Trong một số trường hợp hiếm gặp, có thể có vấn đề về cấu hình mạng hoặc định tuyến khiến máy chủ của bạn không thể truy cập được từ bên ngoài. Hãy kiểm tra lại địa chỉ IP công khai và các cài đặt mạng liên quan.

Gia hạn chứng chỉ SSL tự động với Certbot

Một trong những tính năng tuyệt vời nhất của Let’s Encrypt là các chứng chỉ của họ có thời hạn 90 ngày. Điều này khuyến khích việc tự động hóa quy trình gia hạn, giúp tăng cường bảo mật. Certbot được thiết kế hoàn hảo cho nhiệm vụ này, giúp bạn “cài đặt và quên đi”.

Khi bạn cài đặt Certbot từ kho phần mềm của Ubuntu, nó thường sẽ tự động cấu hình một công việc lặp lại (cron job) hoặc một bộ đếm thời gian systemd (systemd timer). Công việc này sẽ tự động chạy lệnh certbot renew hai lần mỗi ngày. Lệnh này sẽ kiểm tra tất cả các chứng chỉ được quản lý bởi Certbot. Nếu một chứng chỉ nào đó còn ít hơn 30 ngày là hết hạn, Certbot sẽ tự động cố gắng gia hạn nó.

Hình minh họa

Bạn không cần phải làm gì thêm để thiết lập cơ chế này. Tuy nhiên, bạn nên kiểm tra xem nó có hoạt động đúng không. Cách tốt nhất để làm điều này là thực hiện một lần “gia hạn thử” (dry run). Lệnh này sẽ mô phỏng quá trình gia hạn mà không thực sự thay đổi bất kỳ chứng chỉ nào của bạn.

Hãy chạy lệnh sau:

sudo certbot renew --dry-run

Nếu quá trình chạy thử kết thúc mà không có lỗi và bạn thấy thông báo “Congratulations, all simulated renewals succeeded”, điều đó có nghĩa là cơ chế gia hạn tự động của bạn đã được thiết lập đúng cách. Bạn có thể yên tâm rằng chứng chỉ của mình sẽ được gia hạn kịp thời trước khi hết hạn.

Nếu bạn muốn kiểm tra trạng thái của bộ đếm thời gian systemd, bạn có thể sử dụng lệnh:

sudo systemctl list-timers | grep certbot

Lệnh này sẽ cho bạn thấy khi nào lần kiểm tra gia hạn tiếp theo sẽ được thực hiện. Việc chủ động kiểm tra này giúp bạn đảm bảo website sẽ không bao giờ bị gián đoạn dịch vụ do chứng chỉ hết hạn đột ngột.

Best Practices

Để duy trì một hệ thống bảo mật, ổn định và hiệu quả, việc cài đặt SSL chỉ là bước khởi đầu. Dưới đây là những thực tiễn tốt nhất (best practices) mà AZWEB khuyên bạn nên tuân thủ để đảm bảo an toàn lâu dài cho website của mình.

Luôn cập nhật hệ điều hành và Certbot phiên bản mới nhất: Các bản cập nhật không chỉ mang lại tính năng mới mà còn vá các lỗ hổng bảo mật quan trọng. Hãy thường xuyên chạy lệnh sudo apt update && sudo apt upgrade để giữ cho máy chủ Ubuntu và tất cả các gói phần mềm, bao gồm cả Certbot, luôn ở phiên bản mới nhất.

Sử dụng HTTPS cho toàn bộ website: Đừng để tồn tại song song cả phiên bản HTTP và HTTPS. Hãy cấu hình chuyển hướng 301 vĩnh viễn từ HTTP sang HTTPS cho tất cả các trang. Điều này đảm bảo mọi kết nối đến website của bạn đều được mã hóa, đồng thời tránh các vấn đề về nội dung trùng lặp trong SEO.

Sao lưu tệp cấu hình và chứng chỉ SSL định kỳ: Thảm họa có thể xảy ra bất cứ lúc nào. Hãy tạo thói quen sao lưu thư mục cấu hình của máy chủ web (/etc/nginx hoặc /etc/apache2) và thư mục chứa chứng chỉ của Certbot (/etc/letsencrypt). Việc này sẽ giúp bạn phục hồi hệ thống một cách nhanh chóng khi gặp sự cố.

Không tắt firewall hoặc mở port quá rộng: Tường lửa là lớp phòng thủ đầu tiên của bạn. Chỉ mở những cổng thực sự cần thiết (như 80, 443, 22). Đừng bao giờ tắt tường lửa chỉ để giải quyết một vấn đề kết nối tạm thời. Hãy tìm hiểu và cấu hình các quy tắc một cách chính xác, có thể tham khảo thêm về Firewall là gì.

Kiểm tra định kỳ chứng chỉ để tránh hết hạn đột ngột: Mặc dù Certbot có cơ chế tự động gia hạn, đôi khi vẫn có thể xảy ra lỗi. Hãy thiết lập một lịch nhắc nhở trong calendar của bạn khoảng 20 ngày trước khi chứng chỉ hết hạn để kiểm tra lại. Bạn cũng có thể sử dụng các dịch vụ giám sát trực tuyến để nhận cảnh báo khi chứng chỉ sắp hết hạn.

Kết luận

Bảo mật website không còn là một lựa chọn, mà là một yêu cầu bắt buộc trong kỷ nguyên số. Việc triển khai chứng chỉ SSL là một trong những bước đi nền tảng và quan trọng nhất để bảo vệ dữ liệu người dùng, xây dựng lòng tin và cải thiện thứ hạng trên các công cụ tìm kiếm. Qua bài viết này, chúng ta đã cùng nhau đi qua một quy trình chi tiết, từ việc chuẩn bị môi trường Ubuntu 20.04, cài đặt Certbot, cho đến việc lấy, cấu hình và tự động gia hạn chứng chỉ SSL miễn phí từ Let’s Encrypt.

Quy trình này, dù có vẻ kỹ thuật, nhưng với sự hỗ trợ đắc lực của Certbot, đã trở nên đơn giản và dễ tiếp cận hơn bao giờ hết. Bạn không cần phải là một chuyên gia quản trị hệ thống cũng có thể tự mình bảo vệ website một cách hiệu quả. Việc tự động hóa gia hạn cũng giúp bạn loại bỏ nỗi lo về việc chứng chỉ hết hạn đột ngột, đảm bảo website luôn hoạt động ổn định và an toàn.

AZWEB khuyến khích bạn áp dụng ngay những kiến thức này vào thực tế. Đừng chần chừ trong việc nâng cao lớp áo giáp bảo mật cho website của mình. Hãy nhớ rằng, một website an toàn không chỉ bảo vệ bạn mà còn bảo vệ chính những khách hàng và người dùng tin tưởng vào dịch vụ của bạn. Hãy luôn theo dõi, kiểm tra và duy trì hệ thống của mình để đảm bảo an toàn tuyệt đối. Để tìm hiểu sâu hơn, bạn có thể tham khảo thêm các bài viết hướng dẫn chi tiết về bảo mật và quản trị máy chủ Ubuntu tại AZWEB.

Đánh giá