Cài đặt chứng chỉ bảo mật SSL/TLS miễn phí cho Apache Web Server
3 phút đọc19/01/2018
Trung NguyenHacker. Builder. Educator. On a mission to make the internet safer.
Về tác giả

Trung NguyenHacker. Builder. Educator. On a mission to make the internet safer. Hacker. Builder. Educator. On a mission to make the internet safer.
Cập nhật thông tin mới nhấtNhận các thông tin mới nhất về mối đe dọa, báo cáo an ninh mạng từ CyStack về hòm thư điện tử của bạn
{"success":true,"head":"<title>Cài đặt chứng chỉ bảo mật SSL/TLS miễn phí cho Apache Web Server - CyStack Blog</title>\n<meta name=\"description\" content=\"Hướng dẫn bảo mật Apache này sẽ chỉ cho bạn cách thiết lập chứng chỉ TLS / SSL từ Let's Encrypt trên một máy chủ Ubuntu 16.04 chạy Apache làm máy chủ web. Let’s Encrypt rất dễ dàng để thiết lập cũng như cho phép cài đặt các chứng chỉ tin cậy miễn phí từ đó bảo mật Apache với Let's Encrypt\"/>\n<meta name=\"robots\" content=\"nofollow, noindex\"/>\n<meta property=\"og:locale\" content=\"en_US\" />\n<meta property=\"og:type\" content=\"article\" />\n<meta property=\"og:title\" content=\"Cài đặt chứng chỉ bảo mật SSL/TLS miễn phí cho Apache Web Server - CyStack Blog\" />\n<meta property=\"og:description\" content=\"Hướng dẫn bảo mật Apache này sẽ chỉ cho bạn cách thiết lập chứng chỉ TLS / SSL từ Let's Encrypt trên một máy chủ Ubuntu 16.04 chạy Apache làm máy chủ web. Let’s Encrypt rất dễ dàng để thiết lập cũng như cho phép cài đặt các chứng chỉ tin cậy miễn phí từ đó bảo mật Apache với Let's Encrypt\" />\n<meta property=\"og:url\" content=\"https://blog.cystack.org/vi/blog/2018/01/19/bao-mat-apache-lets-encrypt-ubuntu-16-04/\" />\n<meta property=\"og:site_name\" content=\"CyStack Blog\" />\n<meta property=\"article:author\" content=\"CEO@CyStack\" />\n<meta property=\"article:tag\" content=\"apache\" />\n<meta property=\"article:tag\" content=\"bảo mật apache\" />\n<meta property=\"article:tag\" content=\"chứng chỉ ssl\" />\n<meta property=\"article:tag\" content=\"chứng chỉ SSL miễn phí\" />\n<meta property=\"article:tag\" content=\"let encrypt\" />\n<meta property=\"article:tag\" content=\"lets encrypt\" />\n<meta property=\"article:tag\" content=\"ssl\" />\n<meta property=\"article:tag\" content=\"ssl miễn phí\" />\n<meta property=\"article:tag\" content=\"vi\" />\n<meta property=\"article:section\" content=\"An toàn vận hành\" />\n<meta property=\"og:updated_time\" content=\"2026-06-23T20:10:02+07:00\" />\n<meta property=\"og:image\" content=\"https://s.cystack.net/resource/home/content/03133810/Thumbnail-CyStack.png\" />\n<meta property=\"og:image:secure_url\" content=\"https://s.cystack.net/resource/home/content/03133810/Thumbnail-CyStack.png\" />\n<meta property=\"og:image:width\" content=\"1920\" />\n<meta property=\"og:image:height\" content=\"1081\" />\n<meta property=\"og:image:alt\" content=\"Hướng dẫn bảo mật Apache\" />\n<meta property=\"og:image:type\" content=\"image/png\" />\n<meta property=\"article:published_time\" content=\"2018-01-19T11:56:42+07:00\" />\n<meta property=\"article:modified_time\" content=\"2026-06-23T20:10:02+07:00\" />\n<meta name=\"twitter:card\" content=\"summary_large_image\" />\n<meta name=\"twitter:title\" content=\"Cài đặt chứng chỉ bảo mật SSL/TLS miễn phí cho Apache Web Server - CyStack Blog\" />\n<meta name=\"twitter:description\" content=\"Hướng dẫn bảo mật Apache này sẽ chỉ cho bạn cách thiết lập chứng chỉ TLS / SSL từ Let's Encrypt trên một máy chủ Ubuntu 16.04 chạy Apache làm máy chủ web. Let’s Encrypt rất dễ dàng để thiết lập cũng như cho phép cài đặt các chứng chỉ tin cậy miễn phí từ đó bảo mật Apache với Let's Encrypt\" />\n<meta name=\"twitter:image\" content=\"https://s.cystack.net/resource/home/content/03133810/Thumbnail-CyStack.png\" />\n<meta name=\"twitter:label1\" content=\"Written by\" />\n<meta name=\"twitter:data1\" content=\"Trung Nguyen\" />\n<meta name=\"twitter:label2\" content=\"Time to read\" />\n<meta name=\"twitter:data2\" content=\"4 minutes\" />\n<script type=\"application/ld+json\" class=\"rank-math-schema\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://blog.cystack.org/#organization\",\"name\":\"CyStack\",\"url\":\"https://blog.cystack.org\"},{\"@type\":\"WebSite\",\"@id\":\"https://blog.cystack.org/#website\",\"url\":\"https://blog.cystack.org\",\"name\":\"CyStack\",\"publisher\":{\"@id\":\"https://blog.cystack.org/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https://s.cystack.net/resource/home/content/03133810/Thumbnail-CyStack.png\",\"url\":\"https://s.cystack.net/resource/home/content/03133810/Thumbnail-CyStack.png\",\"width\":\"1920\",\"height\":\"1081\",\"inLanguage\":\"en-US\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://blog.cystack.org/vi/blog/2018/01/19/bao-mat-apache-lets-encrypt-ubuntu-16-04/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":\"1\",\"item\":{\"@id\":\"https://blog.cystack.org\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":\"2\",\"item\":{\"@id\":\"https://blog.cystack.org/vi/blog/2018/01/19/bao-mat-apache-lets-encrypt-ubuntu-16-04/\",\"name\":\"C\\u00e0i \\u0111\\u1eb7t ch\\u1ee9ng ch\\u1ec9 b\\u1ea3o m\\u1eadt SSL/TLS mi\\u1ec5n ph\\u00ed cho Apache Web Server\"}}]},{\"@type\":\"WebPage\",\"@id\":\"https://blog.cystack.org/vi/blog/2018/01/19/bao-mat-apache-lets-encrypt-ubuntu-16-04/#webpage\",\"url\":\"https://blog.cystack.org/vi/blog/2018/01/19/bao-mat-apache-lets-encrypt-ubuntu-16-04/\",\"name\":\"C\\u00e0i \\u0111\\u1eb7t ch\\u1ee9ng ch\\u1ec9 b\\u1ea3o m\\u1eadt SSL/TLS mi\\u1ec5n ph\\u00ed cho Apache Web Server - CyStack Blog\",\"datePublished\":\"2018-01-19T11:56:42+07:00\",\"dateModified\":\"2026-06-23T20:10:02+07:00\",\"isPartOf\":{\"@id\":\"https://blog.cystack.org/#website\"},\"primaryImageOfPage\":{\"@id\":\"https://s.cystack.net/resource/home/content/03133810/Thumbnail-CyStack.png\"},\"inLanguage\":\"en-US\",\"breadcrumb\":{\"@id\":\"https://blog.cystack.org/vi/blog/2018/01/19/bao-mat-apache-lets-encrypt-ubuntu-16-04/#breadcrumb\"}},{\"@type\":\"Person\",\"@id\":\"https://blog.cystack.org/author/trungnh/\",\"name\":\"Trung Nguyen\",\"url\":\"https://blog.cystack.org/author/trungnh/\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https://secure.gravatar.com/avatar/5e1e19d9b81295eeafdbc4175f18cc5b99a688411b0b5a2189c63881dff568b1?s=96&d=mm&r=g\",\"url\":\"https://secure.gravatar.com/avatar/5e1e19d9b81295eeafdbc4175f18cc5b99a688411b0b5a2189c63881dff568b1?s=96&d=mm&r=g\",\"caption\":\"Trung Nguyen\",\"inLanguage\":\"en-US\"},\"sameAs\":[\"CEO@CyStack\"],\"worksFor\":{\"@id\":\"https://blog.cystack.org/#organization\"}},{\"@type\":\"BlogPosting\",\"headline\":\"C\\u00e0i \\u0111\\u1eb7t ch\\u1ee9ng ch\\u1ec9 b\\u1ea3o m\\u1eadt SSL/TLS mi\\u1ec5n ph\\u00ed cho Apache Web Server - CyStack Blog\",\"keywords\":\"H\\u01b0\\u1edbng d\\u1eabn b\\u1ea3o m\\u1eadt Apache\",\"datePublished\":\"2018-01-19T11:56:42+07:00\",\"dateModified\":\"2026-06-23T20:10:02+07:00\",\"author\":{\"@id\":\"https://blog.cystack.org/author/trungnh/\",\"name\":\"Trung Nguyen\"},\"publisher\":{\"@id\":\"https://blog.cystack.org/#organization\"},\"description\":\"H\\u01b0\\u1edbng d\\u1eabn b\\u1ea3o m\\u1eadt Apache n\\u00e0y s\\u1ebd ch\\u1ec9 cho b\\u1ea1n c\\u00e1ch thi\\u1ebft l\\u1eadp ch\\u1ee9ng ch\\u1ec9 TLS / SSL t\\u1eeb Let's Encrypt tr\\u00ean m\\u1ed9t m\\u00e1y ch\\u1ee7 Ubuntu 16.04 ch\\u1ea1y Apache l\\u00e0m m\\u00e1y ch\\u1ee7 web. Let\\u2019s Encrypt r\\u1ea5t d\\u1ec5 d\\u00e0ng \\u0111\\u1ec3 thi\\u1ebft l\\u1eadp c\\u0169ng nh\\u01b0 cho ph\\u00e9p c\\u00e0i \\u0111\\u1eb7t c\\u00e1c ch\\u1ee9ng ch\\u1ec9 tin c\\u1eady mi\\u1ec5n ph\\u00ed t\\u1eeb \\u0111\\u00f3 b\\u1ea3o m\\u1eadt Apache v\\u1edbi Let's Encrypt\",\"name\":\"C\\u00e0i \\u0111\\u1eb7t ch\\u1ee9ng ch\\u1ec9 b\\u1ea3o m\\u1eadt SSL/TLS mi\\u1ec5n ph\\u00ed cho Apache Web Server - CyStack Blog\",\"@id\":\"https://blog.cystack.org/vi/blog/2018/01/19/bao-mat-apache-lets-encrypt-ubuntu-16-04/#richSnippet\",\"isPartOf\":{\"@id\":\"https://blog.cystack.org/vi/blog/2018/01/19/bao-mat-apache-lets-encrypt-ubuntu-16-04/#webpage\"},\"image\":{\"@id\":\"https://s.cystack.net/resource/home/content/03133810/Thumbnail-CyStack.png\"},\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https://blog.cystack.org/vi/blog/2018/01/19/bao-mat-apache-lets-encrypt-ubuntu-16-04/#webpage\"}}]}</script>\n"}
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.