Cài đặt Let's Encrypt SSL trên Ubuntu 22.04 với Apache và sử dụng Certbot
Hướng dẫn này sử dụng một tệp máy chủ ảo riêng biệt thay vì tệp cấu hình mặc định của Apache để thiết lập trang web sẽ được bảo mật bởi Let's Encrypt. Chúng tôi khuyến nghị tạo tệp máy chủ ảo Apache mới cho mỗi domain được lưu trữ trên một máy chủ vì điều này giúp tránh các lỗi phổ biến và duy trì các tệp cấu hình mặc định như là một thiết lập dự phòng.
Chuẩn bị trước khi install SSL Let's Encrypt Certbot trên Ubuntu 22.04 bảo mật Apache
Để tuân thủ hướng dẫn này, bạn sẽ cần:
- Một máy chủ Ubuntu 22.04 được thiết lập với một người dùng không phải là root có đặc quyền quản trị sudo và tường lửa được kích hoạt.
- Một tên miền đã được đăng ký đầy đủ. Hướng dẫn này sẽ sử dụng your_domain làm ví dụ. Bạn có thể mua tên miền trên KDATA
- Cả hai bản ghi DNS sau đã được cài đặt cho máy chủ của bạn. Nếu bạn gặp khó khăn, liên hệ với bộ phận hỗ trợ của KDATA.
- Bản ghi A với
your_domain
trỏ đến địa chỉ IP công cộng của máy chủ của bạn. - Bản ghi A với
www.your_domain
trỏ đến địa chỉ IP công cộng của máy chủ của bạn. - Apache đã được cài đặt theo hướng dẫn Cách Cài đặt Apache trên Ubuntu 22.04. Hãy đảm bảo rằng bạn có một tệp máy chủ ảo cho domain của bạn. Hướng dẫn này sẽ sử dụng
/etc/apache2/sites-available/your_domain.conf
làm ví dụ.
Bước 1 - Cài đặt Certbot
Để lấy chứng chỉ SSL với Let's Encrypt, bạn cần cài đặt phần mềm Certbot trên máy chủ của bạn. Bạn sẽ sử dụng các kho lưu trữ gói mặc định của Ubuntu cho việc này.
Đầu tiên, cập nhật chỉ mục gói cục bộ:
sudo apt update
Bạn cần hai gói: certbot
và python3-certbot-apache
. Gói thứ hai là một plugin tích hợp Certbot với Apache, giúp tự động hóa việc lấy chứng chỉ và cấu hình HTTPS trong máy chủ web của bạn với một lệnh duy nhất:
sudo apt install certbot python3-certbot-apache
Bạn sẽ được yêu cầu xác nhận cài đặt bằng cách nhấn Y
, sau đó nhấn ENTER
.
Certbot hiện đã được cài đặt trên máy chủ của bạn. Trong bước tiếp theo, bạn sẽ xác minh cấu hình của Apache để đảm bảo rằng máy chủ ảo của bạn được thiết lập đúng. Điều này đảm bảo rằng tập lệnh client certbot sẽ có thể phát hiện các domain của bạn và cấu hình lại máy chủ web của bạn để sử dụng chứng chỉ SSL mới được tạo tự động.
Bước 2 - Kiểm tra cấu hình Apache Virtual Host
Để tự động lấy và cấu hình SSL cho máy chủ web của bạn, Certbot cần tìm máy chủ ảo chính xác trong các tệp cấu hình Apache của bạn. Tên miền máy chủ của bạn sẽ được lấy từ các chỉ thị ServerName
và ServerAlias
được xác định trong khối cấu hình VirtualHost
của bạn.
Nếu bạn đã tuân theo bước thiết lập máy chủ ảo trong hướng dẫn cài đặt Apache, bạn nên có một khối VirtualHost được thiết lập cho domain của bạn tại /etc/apache2/sites-available/your_domain.conf
với các chỉ thị ServerName
và ServerAlias
đã được thiết lập đúng.
Để xác nhận điều này đã được thiết lập, mở tệp máy chủ ảo cho domain của bạn bằng nano
hoặc trình soạn thảo văn bản ưa thích của bạn:
sudo nano /etc/apache2/sites-available/your_domain.conf
Tìm các dòng ServerName và ServerAlias hiện có. Chúng nên được liệt kê như sau:
...
ServerName your_domain
ServerAlias www.your_domain
...
Nếu bạn đã thiết lập ServerName
và ServerAlias
của mình như vậy, bạn có thể thoát khỏi trình soạn thảo văn bản và chuyển sang bước tiếp theo. Nếu cấu hình máy chủ ảo hiện tại của bạn không khớp với ví dụ, hãy cập nhật nó tương ứng. Nếu bạn đang sử dụng nano
, bạn có thể thoát bằng cách nhấn CTRL+X
, sau đó nhấn Y
và ENTER
để xác nhận các thay đổi của bạn, nếu có. Sau đó, chạy lệnh sau để xác nhận các thay đổi của bạn:
sudo apache2ctl configtest
Bạn nên nhận được câu trả lời là Syntax OK
. Nếu bạn nhận được một lỗi, mở lại tệp máy chủ ảo và kiểm tra xem có lỗi chính tả hoặc ký tự nào đó thiếu không. Khi cú pháp của tệp cấu hình của bạn là chính xác, tải lại Apache để thay đổi có hiệu lực:
sudo systemctl reload apache2
Với những thay đổi này, Certbot sẽ có thể tìm thấy khối VirtualHost chính xác và cập nhật nó.
Tiếp theo, bạn sẽ cập nhật tường lửa để cho phép lưu lượng HTTPS.
Với những thay đổi này, Certbot sẽ có thể tìm ra khối VirtualHost chính xác và cập nhật nó.
Bước 3 - Cập nhật tường lửa để cho phép lưu lượng HTTPS
Nếu bạn đã kích hoạt tường lửa UFW, như được khuyến nghị trong các hướng dẫn tiên quyết, bạn sẽ cần điều chỉnh cài đặt để cho phép lưu lượng HTTPS. Sau khi cài đặt, Apache đăng ký một số hồ sơ ứng dụng UFW khác nhau. Bạn có thể sử dụng hồ sơ Apache Full để cho phép cả lưu lượng HTTP và HTTPS trên máy chủ của bạn.
Để xác minh loại lưu lượng đang được phép trên máy chủ của bạn, kiểm tra trạng thái:
sudo ufw status
Nếu bạn đã tuân theo một trong các hướng dẫn cài đặt Apache của chúng tôi, bạn sẽ có đầu ra tương tự như sau, có nghĩa là hiện chỉ lưu lượng HTTP trên cổng 80
được phép:
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
Để cho phép lưu lượng HTTPS, cho phép hồ sơ "Apache Full":
sudo ufw allow 'Apache Full'
Sau đó, xóa hồ sơ "Apache" lặp lại:
sudo ufw delete allow 'Apache'
Trạng thái của bạn sẽ hiển thị như sau:
sudo ufw status
Output:
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache Full (v6) ALLOW Anywhere (v6)
Bây giờ, bạn đã sẵn sàng chạy Certbot và lấy chứng chỉ của mình.
Bước 4 - Lấy chứng chỉ SSL Certbot
cung cấp nhiều cách để lấy chứng chỉ SSL thông qua các plugin. Plugin Apache sẽ đảm nhận việc cấu hình lại Apache và tải lại cấu hình khi cần thiết. Để sử dụng plugin này, chạy lệnh sau:
sudo certbot --apache
Tập lệnh này sẽ yêu cầu bạn trả lời một loạt các câu hỏi để cấu hình chứng chỉ SSL của bạn. Đầu tiên, nó sẽ yêu cầu bạn nhập một địa chỉ email hợp lệ. Địa chỉ email này sẽ được sử dụng cho thông báo gia hạn và thông báo bảo mật:
Output
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): you@your_domain
Sau khi cung cấp một địa chỉ email hợp lệ, nhấn ENTER
để tiếp tục bước tiếp theo. Bạn sau đó sẽ được yêu cầu xác nhận liệu bạn đồng ý với các điều khoản dịch vụ của Let's Encrypt. Bạn có thể xác nhận bằng cách nhấn Y
và sau đó nhấn ENTER
:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Tiếp theo, bạn sẽ được hỏi liệu bạn có muốn chia sẻ địa chỉ email của mình với Electronic Frontier Foundation để nhận tin tức và thông tin khác hay không. Nếu bạn không muốn đăng ký nội dung của họ, hãy nhập N
. Nếu không, nhập Y
sau đó nhấn ENTER
để tiếp tục bước tiếp theo:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N
Bước tiếp theo sẽ yêu cầu bạn thông báo cho Certbot biết bạn muốn kích hoạt HTTPS cho những tên miền nào. Các tên miền được liệt kê sẽ tự động được lấy từ cấu hình máy chủ ảo Apache của bạn, vì vậy quan trọng để đảm bảo bạn đã cấu hình đúng ServerName
và ServerAlias
trong máy chủ ảo của bạn. Nếu bạn muốn bật HTTPS cho tất cả các tên miền đã liệt kê (được khuyến khích), bạn có thể để trống và nhấn ENTER
để tiếp tục. Nếu không, chọn các tên miền bạn muốn kích hoạt HTTPS bằng cách liệt kê mỗi số tương ứng, phân cách bằng dấu phẩy và/hoặc khoảng trắng, sau đó nhấn ENTER
:
Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: your_domain
2: www.your_domain
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel):
Sau bước này, cấu hình của Certbot đã hoàn tất, và bạn sẽ được hiển thị các ghi chú cuối cùng về chứng chỉ mới của bạn và nơi có thể tìm thấy các tệp đã tạo:
Output
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/your_domain/fullchain.pem
Key is saved at: /etc/letsencrypt/live/your_domain/privkey.pem
This certificate expires on 2022-07-10.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
Deploying certificate
Successfully deployed certificate for your_domain to /etc/apache2/sites-available/your_domain-le-ssl.conf
Successfully deployed certificate for www.your_domain.com to /etc/apache2/sites-available/your_domain-le-ssl.conf
Congratulations! You have successfully enabled HTTPS on https:/your_domain and https://www.your_domain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
* Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
* Donating to EFF: https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Chứng chỉ của bạn hiện đã được cài đặt và nạp vào cấu hình Apache. Hãy thử tải lại trang web của bạn bằng cách sử dụng https://
và chú ý đến chỉ báo bảo mật của trình duyệt của bạn. Nó nên chỉ ra rằng trang web của bạn đã được bảo mật đúng cách, thường là thông qua biểu tượng khóa trong thanh địa chỉ.
Bạn có thể sử dụng Kiểm tra máy chủ SSL Labs để kiểm tra điểm chấm của chứng chỉ và nhận thông tin chi tiết về nó, từ quan điểm của một dịch vụ bên ngoại.
Ở bước tiếp theo và cuối cùng, bạn sẽ kiểm tra tính năng tự động gia hạn của Certbot, đảm bảo rằng chứng chỉ của bạn sẽ được gia hạn tự động trước ngày hết hạn.
Bước 5 - Xác minh tính năng tự động gia hạn của Certbot
Chứng chỉ của Let's Encrypt chỉ có hiệu lực trong vòng chín mươi ngày. Điều này nhằm khuyến khích người dùng tự động hóa quá trình gia hạn chứng chỉ của họ, cũng như đảm bảo rằng chứng chỉ bị lạm dụng hoặc khóa bị đánh cắp sẽ hết hiệu lực sớm hơn.
Gói certbot
mà bạn đã cài đặt tự động gia hạn chứng chỉ bằng cách bao gồm một tập lệnh gia hạn trong /etc/cron.d
, được quản lý bởi dịch vụ systemctl
có tên certbot.timer
. Tập lệnh này chạy hai lần mỗi ngày và sẽ tự động gia hạn bất kỳ chứng chỉ nào còn trong vòng ba mươi ngày trước khi hết hạn.
Để kiểm tra trạng thái của dịch vụ này và đảm bảo rằng nó đang hoạt động, chạy lệnh sau:
sudo systemctl status certbot.timer
Đầu ra của bạn sẽ tương tự như sau:
Output
● certbot.timer - Run certbot twice daily
Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset:>
Active: active (waiting) since Mon 2022-04-11 20:52:46 UTC; 4min 3s ago
Trigger: Tue 2022-04-12 00:56:55 UTC; 4h 0min left
Triggers: ● certbot.service
Apr 11 20:52:46 jammy-encrypt systemd[1]: Started Run certbot twice daily.
Để kiểm tra quá trình gia hạn, bạn có thể thực hiện thử nghiệm không thực sự với certbot:
sudo certbot renew --dry-run
Output
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/your_domain.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Account registered.
Simulating renewal of an existing certificate for your_domain and www.your_domain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all simulated renewals succeeded:
/etc/letsencrypt/live/your_domain/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Nếu bạn không nhận được bất kỳ lỗi nào, bạn đã hoàn thành bảo mật Apache với install SSL Let's Encrypt trên Ubuntu 22.04 . Khi cần thiết, Certbot sẽ gia hạn chứng chỉ của bạn và tải lại Apache để áp dụng các thay đổi. Nếu quá trình gia hạn tự động bao giờ gặp sự cố, Let's Encrypt sẽ gửi một thông báo đến địa chỉ email bạn đã chỉ định, cảnh báo bạn khi chứng chỉ của bạn sắp hết hạn.
Kết luận về bảo mật Apache bằng SSL Let's Encrypt Certbot trên Ubuntu 22.04
Trong hướng dẫn này, bạn đã cài đặt ứng dụng Let’s Encrypt Certbot, cấu hình và cài đặt một chứng chỉ SSL cho tên miền của bạn trên Ubuntu 22.04, và xác minh rằng dịch vụ tự động gia hạn của Certbot đang hoạt động trong systemctl
.
Mọi người cùng tìm kiếm: install certbot ubuntu 22.04, certbot install ubuntu 22.04, install certbot on ubuntu 22.04, ssl ubuntu 22.04, apache letsencrypt ubuntu 22.04, letsencrypt apache2 ubuntu 22.04, apache certbot, apache letsencrypt ubuntu, apache2 https, apache2 letsencrypt, apache2 letsencrypt ubuntu 22.04
Đến với Chứng chỉ SSL của KDATA. Với chúng tôi, an ninh mạng không còn là nỗi lo. Bảo vệ thông tin trực tuyến của bạn bằng cách mua Chứng chỉ SSL tại KDATA, giúp giảm thiểu rủi ro và tăng cường sự an toàn cho website của bạn. Hãy đầu tư vào sự an toàn ngay hôm nay với KDATA!
https://kdata.vn/ssl-certificate
👉 Liên hệ ngay KDATA hỗ trợ tận tình, support tối đa, giúp bạn trải nghiệm dịch vụ giá hời chất lượng tốt nhất