CEO @CyStack
Bài viết này hướng dẫn cho bạn cách để thiết lập chứng chỉ TLS/SSL miễn phí cho máy chủ web sử dụng Apache bằng Let’s Encrypt. Việc sở hữu chứng chỉ SSL sẽ giúp bảo mật web tốt hơn, tránh khỏi các rủi ro tin tặc tấn công đánh cắp dữ liệu người dùng và web server của bạn.
Điều kiện chuẩn bị
Để hoàn thành hướng dẫn này, bạn sẽ cần:
– Một cloud server Ubuntu chạy phiên bản 16.04 trở lên với tài khoản non-root sudo-enable
– Máy chủ web Apache được cài đặt với một hoặc nhiều tên miền được cài đặt cấu hình sẵn thông qua các máy ảo chỉ định ServerName.
Khi bạn đã sẵn sàng để tiếp tục việc bảo mật Apache với Let’s Encrypt, hãy đăng nhập vào máy chủ của bạn bằng cách sử dụng tài khoản sudo-enabled.
Bước 1 – Cài đặt client Let’s Encrypt
Chứng chỉ Let’s Encrypt được mã hóa từ phần mềm client đang chạy trên cloud server. Phần mềm chính hãng được gọi là Certbot, và các nhà phát triển Cerbot luôn duy trì kho phần mềm Ubuntu riêng của họ với các phiên bản cập nhật mới nhất. Do đó, cách tốt nhất là sử dụng Cerbot để cài đặt thay cho Ubuntu mặc định.
Đầu tiên, thêm kho lưu trữ:
sudo add-apt-repository ppa: certbot / certbot
Sau đó, ấn ENTER để chấp nhận.
Tiếp theo, cập nhật danh sách gói để lấy thông tin gói của kho lưu trữ mới:
sudo apt-get update
Và cuối cùng, cài đặt Certbot từ kho lưu trữ bằng apt-get:
sudo apt-get install python-certbot-apache
Client certbot Let’s Encrypt đã sẵn sàng để sử dụng.
Bước 2 – Cài đặt Chứng chỉ SSL
Việc tạo chứng chỉ SSL cho Apache bằng Certbot khá đơn giản. Phần mềm client sẽ tự động nhận và cài đặt chứng chỉ SSL mới phù hợp với domain, được cung cấp dưới dạng các thông số.
Để thực hiện cài đặt và nhận được chứng chỉ chỉ bao gồm một miền duy nhất, hãy chạy lệnh certbot sau đây, với example.com là miền của bạn:
sudo certbot --apache -d example.com
Nếu bạn muốn cài đặt một chứng chỉ cho nhiều tên miền hoặc tên miền phụ, bạn có thể chuyển chúng như các tham số bổ sung cho lệnh. Tên miền đầu tiên trong danh sách các tham số sẽ là tên miền cơ sở được sử dụng bởi Let’s encrypt để tạo chứng chỉ. Vì vậy, bạn nên chuyển tên miền chính trở thành tên đầu tiên trong danh sách, tiếp theo là bất kỳ tên miền phụ bổ sung nào:
sudo certbot --apache -d example.com -d www.example.com
Trong ví dụ này, giả định tên miền cơ sở là example.com.
Nếu bạn có nhiều máy ảo, bạn nên chạy certbot một lần cho mỗi máy để tạo ra một chứng chỉ mới cho từng máy. Bạn có thể phân phối nhiều tên miền và tên miền phụ trên máy ảo của mình dưới bất kỳ hình thức nào.
Sau khi chạy lệnh, bạn sẽ được đưa qua các bước tuỳ chọn để thiết lập chứng chỉ của mình. Chẳng hạn như cung cấp địa chỉ email để khôi phục khoá mất cắp hoặc gửi thông báo. Ngoài ra bạn cũng được chọn khởi chạy cả hai giao thức http và https song song hoặc chuyển tất cả về https. Thường thì phương án sau an toàn hơn trừ khi bạn có nhu cầu đặc biệt về http.
Khi cài đặt xong, bạn sẽ có thể tìm thấy các tập tin chứng chỉ được tạo ra tại / etc / letsencrypt / live. Bạn có thể xác minh tình trạng của chứng chỉ SSL với liên kết sau (đừng quên thay example.com bằng tên miền cơ sở của bạn nhé):
https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latest
Bây giờ bạn có thể truy cập trang web của mình bằng cách sử dụng tiền tố https.
Đọc thêm về https tại: https://cystack.net/research/how-does-https-actually-work/
Bước 3 – Thiết lập tự động gia hạn của Certbot
Let’s Encrypt chỉ có hiệu lực trong vòng 90 ngày, do đó việc thiết lập tự động gia hạn là rất quan trọng. Để làm điều này chúng ta sử dụng tập lệnh cron được đặt trong /etc/cron.d. Tác vụ này sẽ làm mới bất kỳ chứng chỉ nào còn 30 ngày hoạt động.
Để kiểm tra quá trình gia hạn, bạn có thể thực hiện dry run với certbot:
sudo certbot renew --dry-run
Nếu không có lỗi nào xảy ra, tất cả đã được thiết lập. Khi cần thiết, Certbot sẽ làm mới giấy chứng nhận của bạn và tải lại Apache để nhận các thay đổi. Nếu quá trình tự động gia hạn thất bại, Let’s Encrypt sẽ gửi một tin nhắn đến email mà bạn đã cung cấp trước đó để cảnh báo bạn khi chứng chỉ của bạn sắp hết hạn.
Kết luận
Bài viết này hướng dẫn các bạn cách thức để cài đặt chứng chỉ SSL miễn phí để bảo mật Apache với Let’s Encrypt một trang web lưu trữ trên máy chủ. Để biết các cập nhật quan trọng và biết thêm chi tiết về Certbot Client, bạn nên xem chi tiết tại blog chính thức của Let’s Encrypt và tài liệu Certbot.