Cách cài chứng chỉ SSL bằng Certbot trên Ubuntu
Chứng chỉ SSL (Secure Sockets Layer) đóng một vai trò quan trọng trong việc bảo vệ thông tin trên internet, đặc biệt là trong môi trường truyền dẫn dữ liệu nhạy cảm như giao dịch trực tuyến và truy cập vào các trang web cá nhân. Điều này giúp đảm bảo rằng dữ liệu của bạn được mã hóa và an toàn trên đường truyền, ngăn chặn các rủi ro bảo mật tiềm ẩn. Let’s Encrypt đã trở thành một trong những cách phổ biến nhất và miễn phí để nhận chứng chỉ SSL cho trang web của bạn. Mặc dù hầu hết chứng chỉ của Let’s Encrypt được cấp thông qua xác thực HTTP, nhưng có những tình huống khi bạn cần sử dụng xác thực DNS. Trong bài viết này của Tuấn Anh UET, chúng ta sẽ tìm hiểu cách cài chứng chỉ SSL bằng Certbot trên hệ điều hành Ubuntu.
I. Chuẩn bị trước khi bắt đầu
A. Môi trường cài đặt (Ubuntu 20.04)
Trước khi bắt đầu quá trình cấp chứng chỉ SSL bằng Certbot và xác thực DNS trên Ubuntu 20.04, hãy đảm bảo rằng bạn đã có một máy chủ chạy hệ điều hành Ubuntu 20.04. Để đảm bảo sự mượt mà của quá trình cài đặt và cấu hình, bạn nên tuân theo hướng dẫn “Thiết lập máy chủ ban đầu với Ubuntu 20.04” hoặc đã có một máy chủ Ubuntu 20.04 sẵn sàng để sử dụng.
B. Tên miền đã trỏ và cấu hình tường lửa
Tên miền đã trỏ: Bạn cần sở hữu một tên miền và đã cấu hình nó để trỏ đến địa chỉ IP của máy chủ Ubuntu 20.04 của bạn. Điều này là cần thiết để Certbot có thể xác minh rằng bạn kiểm soát tên miền và cho phép bạn yêu cầu chứng chỉ SSL cho nó.
Cấu hình tường lửa: Đảm bảo rằng bạn đã cấu hình tường lửa trên máy chủ Ubuntu của mình để cho phép lưu lượng truy cập đến cổng 80 và 443. Chứng chỉ SSL thường được yêu cầu thông qua các yêu cầu HTTP trên cổng 80 và sau đó sử dụng cổng 443 để truyền dữ liệu an toàn. Đảm bảo rằng tường lửa không chặn lưu lượng truy cập qua các cổng này.
C. Kiểm tra và tắt các cổng 80 và 443
Trước khi cài đặt Certbot và bắt đầu quá trình xác thực DNS, hãy kiểm tra xem có bất kỳ dịch vụ nào khác đang chạy trên cổng 80 và 443 trên máy chủ Ubuntu của bạn. Điều này đảm bảo rằng Certbot có thể sử dụng các cổng này một cách hiệu quả. Nếu có dịch vụ nào đó đang sử dụng cổng 80 hoặc 443, bạn cần tạm thời tắt chúng hoặc cấu hình chúng để hoạt động cùng với Certbot.
Có thể bạn quan tâm: Cha đẻ của các ngôn ngữ lập trình nổi tiếng nhất thế giới là ai? (Phần 1)
II. Bước 1: Cài đặt Certbot
A. Sử dụng snap package để cài đặt Certbot
Để bắt đầu quá trình cài đặt Certbot, chúng ta sẽ sử dụng công cụ snap, một cách thường được sử dụng để quản lý ứng dụng đóng gói trên các hệ thống Ubuntu. Sử dụng các lệnh sau để cài đặt Certbot:
B. Cập nhật snap core
Trước khi tiếp tục, đảm bảo rằng snap core của bạn được cập nhật đúng cách để đảm bảo tính ổn định và bảo mật cho Certbot:
C. Gỡ cài đặt Certbot phiên bản cũ (nếu cần)
Nếu bạn đã cài đặt Certbot từ nguồn khác trước đó và muốn gỡ bỏ phiên bản cũ trước khi cài đặt bản mới, bạn có thể sử dụng lệnh sau:
D. Liên kết lệnh Certbot để sử dụng dễ dàng
Để sử dụng lệnh Certbot một cách dễ dàng, bạn nên liên kết nó với /usr/bin bằng cách sử dụng lệnh sau:
Bây giờ bạn đã cài đặt và liên kết Certbot trên máy chủ Ubuntu của mình, bạn có thể tiếp tục đến bước tiếp theo để thực hiện xác thực DNS và cấp chứng chỉ SSL.
III. Bước 2: Khởi chạy Certbot
A. Mở cổng 443 cho Certbot
Trước khi sử dụng Certbot để xác thực và cấp chứng chỉ SSL, chúng ta cần đảm bảo rằng cổng 443 (HTTPS) không bị chặn bởi tường lửa hoặc các quy tắc bảo mật trên máy chủ. Đảm bảo cổng này được mở để cho phép Certbot hoạt động một cách trơn tru.
B. Sử dụng Certbot với chế độ standalone
Để xác thực tên miền và cấp chứng chỉ SSL, chúng ta sẽ sử dụng Certbot với chế độ standalone. Điều này tạo ra một máy chủ web tạm thời trên cổng 443 để cho phép Certbot xác thực.
Sử dụng lệnh sau để bắt đầu quá trình xác thực:
C. Nhập tên miền cần xác thực
Certbot sẽ yêu cầu bạn nhập tên miền mà bạn muốn cấp chứng chỉ SSL cho nó. Hãy nhập tên miền và sau đó nhấn Enter.
D. Hoàn thành yêu cầu nhập email và chấp nhận điều khoản
Tiếp theo, bạn sẽ được yêu cầu nhập một địa chỉ email để nhận thông báo về chứng chỉ SSL. Hãy nhập địa chỉ email của bạn và sau đó nhấn Enter.
Sau đó, bạn sẽ phải chấp nhận điều khoản dịch vụ của Let’s Encrypt. Đọc kỹ điều khoản và sau đó nhập A để đồng ý hoặc C để hủy bỏ quá trình này.
E. Hiển thị thông báo thành công và lưu trữ chứng chỉ
Nếu quá trình xác thực và cấp chứng chỉ thành công, Certbot sẽ hiển thị một thông báo xác nhận và cung cấp thông tin về nơi lưu trữ chứng chỉ. Thường thì, chứng chỉ được lưu trữ trong thư mục /etc/letsencrypt/live/ten_mien_cua_ban/, với ten_mien_cua_ban là tên miền bạn đã xác thực.
Trong bước này, bạn đã thành công trong việc xác thực và cấp chứng chỉ SSL cho tên miền của bạn bằng Certbot. Chứng chỉ này đã được lưu trữ trên máy chủ và sẵn sàng để được sử dụng cho trang web hoặc ứng dụng của bạn.
IV. Bước 3: Cấu hình ứng dụng
A. Liệt kê các tệp chứa chứng chỉ và khoá riêng tư
Sau khi Certbot đã cấp chứng chỉ SSL, bạn có thể tìm thấy các tệp chứa chứng chỉ và khoá riêng tư trong thư mục /etc/letsencrypt/live/ten_mien_cua_ban/, với ten_mien_cua_ban là tên miền bạn đã xác thực. Hãy liệt kê các tệp trong thư mục này để biết chính xác tên của chúng.
Sử dụng lệnh sau để liệt kê các tệp trong thư mục:
B. Quyền truy cập vào tệp privkey.pem
Tệp privkey.pem chứa khoá riêng tư của bạn và nó phải được bảo vệ một cách nghiêm ngặt để đảm bảo bảo mật. Để đảm bảo rằng tệp này không thể truy cập bởi người dùng không cần thiết, bạn nên sử dụng lệnh chmod để chỉ cấp quyền đọc cho chủ sở hữu:
C. Sử dụng tệp fullchain.pem cho các ứng dụng
Tệp fullchain.pem chứa cả chứng chỉ SSL và chuỗi chứng chỉ gốc. Điều này là tệp bạn cần sử dụng cho ứng dụng web hoặc máy chủ của bạn để bảo đảm giao tiếp bảo mật.
Cấu hình ứng dụng của bạn để sử dụng tệp fullchain.pem và tệp privkey.pem (khoá riêng tư) từ thư mục /etc/letsencrypt/live/ten_mien_cua_ban/ để thiết lập HTTPS. Cách cấu hình này có thể thay đổi tùy thuộc vào ứng dụng hoặc máy chủ của bạn, vì vậy hãy đảm bảo kiểm tra tài liệu của ứng dụng hoặc máy chủ cụ thể để biết hướng dẫn chi tiết.
Ở bước này, bạn đã liệt kê các tệp chứa chứng chỉ và khoá riêng tư sau khi Certbot đã cấp chúng và đã thiết lập quyền truy cập cho khoá riêng tư. Bây giờ, bạn đã sẵn sàng cấu hình ứng dụng của mình để sử dụng chứng chỉ SSL.
V. Bước 4: Quản lý tự động gia hạn chứng chỉ
A. Chức năng tự động gia hạn của Certbot
Certbot có tính năng tự động gia hạn chứng chỉ SSL. Nó tạo ra một tác vụ lên lịch để kiểm tra xem chứng chỉ của bạn có cần được gia hạn hay không. Nếu cần thiết, Certbot sẽ tự động gia hạn chúng mà không cần sự tương tác của bạn.
B. Cấu hình script gia hạn trong tệp cấu hình Certbot
Certbot cấu hình các tác vụ gia hạn tự động trong tệp cấu hình. Để chỉ định cách Certbot nên gia hạn chứng chỉ của bạn, bạn có thể chỉnh sửa tệp cấu hình /etc/letsencrypt/renewal/ten_mien_cua_ban.conf, với ten_mien_cua_ban là tên miền bạn đã xác thực.
Sử dụng một trình soạn thảo văn bản, bạn có thể mở tệp cấu hình:
Tìm dòng bắt đầu bằng renew_before_expiry và chỉnh sửa nó để đặt thời gian trước khi hết hạn mà bạn muốn Certbot tự động gia hạn chứng chỉ. Ví dụ, để đặt gia hạn chứng chỉ 30 ngày trước khi chúng hết hạn, bạn có thể sửa dòng này thành:
Lưu lại tệp và thoát.
C. Kiểm tra thử nghiệm tự động gia hạn
Để kiểm tra thử nghiệm xem Certbot có thể tự động gia hạn chứng chỉ thành công hay không, bạn có thể chạy lệnh sau:
Lệnh này sẽ kiểm tra gia hạn chứng chỉ mà không thực hiện bất kỳ thay đổi thực tế nào cho chứng chỉ của bạn. Nếu kiểm tra thành công, bạn sẽ thấy một thông báo cho biết gia hạn đã được thực hiện.
Bây giờ, Certbot đã được cấu hình để tự động gia hạn chứng chỉ của bạn, giúp bạn duy trì tính bảo mật cho trang web hoặc ứng dụng của mình mà không cần can thiệp thủ công.
Lời kết
Việc sử dụng Certbot và xác thực DNS thông qua API của DigitalOcean giúp đơn giản hóa quy trình nhận chứng chỉ SSL và giúp bạn duy trì tính bảo mật cho trang web của mình một cách dễ dàng. Qua bài viết này, bạn đã học cách cài đặt và cấu hình Certbot, tạo mã thông báo truy cập cá nhân cho DigitalOcean và cấp chứng chỉ SSL bằng xác thực DNS. Bên cạnh đó, chúng ta cũng đã thảo luận về việc gia hạn chứng chỉ tự động để đảm bảo tính liên tục của bảo mật trên trang web của bạn. Đừng để vấn đề bảo mật trở thành áp lực, hãy sử dụng công cụ Certbot và xác thực DNS để bảo vệ thông tin của bạn trên internet một cách hiệu quả.