Cài SSL Let's Encrypt trên Microsoft IIS bằng win-acme
Hướng dẫn VPS Hosting & Máy chủ · cập nhật 02/08/2026
Để cài SSL Let's Encrypt trên Microsoft IIS, bạn tải công cụ win-acme về máy chủ Windows, chạy wacs.exe bằng quyền quản trị, chọn website trong danh sách binding rồi để công cụ tự xin và gán chứng chỉ. Mất khoảng 5 phút cho một tên miền.
Cách này dùng cho website chạy trên Windows Server với IIS, khác hẳn Linux vì trên Windows không có certbot. Công cụ win-acme làm thay cả ba việc: xin chứng chỉ, gán vào binding HTTPS của IIS, và tạo tác vụ theo lịch để tự gia hạn.
- Trỏ tên miền về IP máy chủ và mở cổng 80.
- Tải win-acme rồi giải nén vào một thư mục cố định.
- Chạy wacs.exe bằng quyền quản trị và chọn website.
- Xác nhận chứng chỉ đã gán vào binding HTTPS.
Đã kiểm trên Windows Server 2019 với IIS 10. Tên miền phải trỏ đúng về IP máy chủ và cổng 80 phải mở từ Internet trước khi chạy, vì Let's Encrypt gọi ngược về website qua HTTP để xác minh quyền sở hữu.
Công cụ nào còn dùng được để lấy chứng chỉ miễn phí trên Windows
Trên Windows không có certbot chính chủ, nên phải dùng một ACME client viết cho nền tảng này. Cả ba công cụ dưới đây đều nói chuyện với cùng một dịch vụ cấp chứng chỉ miễn phí. Ba lựa chọn phổ biến khác nhau ở cách vận hành: một cái chạy dòng lệnh tương tác, một cái có giao diện đồ hoạ, một cái là module PowerShell để đưa vào script.
| Công cụ | Cách dùng | Tự gán vào IIS | Hợp với |
|---|---|---|---|
| win-acme (WACS) | Dòng lệnh có menu hỏi đáp | Có, tự tạo binding | Vài website trên một máy chủ |
| Certify The Web | Giao diện đồ hoạ | Có | Người quen thao tác bằng chuột |
| Posh-ACME | Module PowerShell | Không, phải tự viết | Đưa vào script triển khai |
Công cụ letsencrypt-win-simple trong các hướng dẫn cũ đã đổi tên thành win-acme từ năm 2018, kho cũ không còn bản mới. Nếu bạn đang tìm theo tên đó thì tìm win-acme, đây là cùng một dự án. Bài này dùng win-acme vì nó tự tạo binding HTTPS và tự đặt lịch gia hạn, hai việc mà công cụ khác bắt làm tay.
Cần chuẩn bị gì trên Windows Server trước khi cài
Bạn cần một máy chủ Windows đã cài IIS và có quyền đăng nhập Remote Desktop bằng tài khoản quản trị. Tên miền phải có bản ghi A trỏ về IP công khai của máy chủ, và website phải đã được tạo trong IIS với binding HTTP ở cổng 80.
Cổng 80 phải mở từ Internet vào máy chủ. Dịch vụ cấp chứng chỉ xác minh quyền sở hữu bằng cách đặt một file vào thư mục .well-known/acme-challenge rồi gọi từ ngoài vào qua HTTP. Tường lửa Windows chặn cổng 80 hoặc tường lửa của nhà cung cấp chưa mở là lượt xin chứng chỉ thất bại ngay, dù mọi thứ khác đúng.
Kiểm nhanh bằng cách mở http://ten-mien-cua-ban từ một máy ngoài mạng. Trang hiện ra là cổng 80 đã thông.
Cách cài SSL Let's Encrypt trên Microsoft IIS bằng win-acme
Bảy bước dưới đây làm trên phiên Remote Desktop bằng tài khoản quản trị. Website vẫn phục vụ bình thường trong lúc chạy, chỉ có một khoảnh khắc ngắn lúc IIS nạp lại binding. Không cần khởi động lại máy chủ.
1. Tải win-acme về máy chủ
Tải file ZIP bản mới nhất của win-acme từ trang phát hành của dự án trên GitHub. Chọn bản dành cho nền tảng x64 và phiên bản .NET khớp với máy chủ, thường là bản win-acme.v2.x.x.x64.pluggable.zip.
2. Giải nén vào một thư mục cố định
Giải nén vào thư mục sẽ giữ lâu dài, ví dụ C:\inetpub\letsencrypt. Không giải nén vào thư mục Downloads hay Desktop, vì win-acme đặt tác vụ theo lịch trỏ tới đúng đường dẫn này. Xoá hoặc chuyển thư mục sau đó là lịch gia hạn hỏng, chứng chỉ hết hạn sau 90 ngày mà không ai biết.

3. Chạy wacs.exe bằng quyền quản trị
Bấm chuột phải vào wacs.exe, chọn Run as administrator. Chạy không có quyền quản trị thì công cụ không sửa được binding của IIS và không đặt được tác vụ theo lịch.

4. Chọn tạo chứng chỉ mới
Ở menu chính, gõ N rồi Enter để tạo chứng chỉ mới với thiết lập mặc định. Đây là đường ngắn nhất, phù hợp với website IIS thông thường.

5. Chọn website cần cài chứng chỉ
Công cụ liệt kê các website đang có binding trong IIS, mỗi dòng một số thứ tự. Gõ số của website cần cài rồi Enter.

6. Xác nhận danh sách tên miền
Công cụ hỏi lại lần nữa để chốt danh sách tên miền sẽ nằm trong chứng chỉ. Gõ P rồi nhập lại tên miền, hoặc gõ A để lấy tất cả tên miền của website đó.

7. Nhận email thông báo và đồng ý điều khoản
Các câu hỏi còn lại là địa chỉ email nhận cảnh báo trước ngày hết hạn và xác nhận đồng ý điều khoản dịch vụ. Khai email bạn thật sự đọc, vì đó là kênh duy nhất báo khi lượt gia hạn tự động thất bại.

Công cụ xin chứng chỉ, cài vào kho chứng chỉ của Windows, tạo binding HTTPS ở cổng 443 cho website và đặt một tác vụ theo lịch tên win-acme renew trong Task Scheduler.
Kiểm tra chứng chỉ đã gán vào IIS chưa
Mở website bằng địa chỉ https:// trong cửa sổ ẩn danh, biểu tượng ổ khoá hiện ở thanh địa chỉ là dấu hiệu đầu tiên. Bấm vào ổ khoá để xem tổ chức cấp là Let's Encrypt và ngày hết hạn cách hiện tại khoảng 90 ngày.
Kiểm phía máy chủ trong IIS Manager: chọn website, bấm Bindings ở cột phải, dòng https cổng 443 phải có sẵn và cột SSL certificate chỉ tới chứng chỉ vừa cấp. Mở Task Scheduler và tìm tác vụ win-acme renew để chắc lịch gia hạn đã được đặt.
Muốn kiểm kỹ hơn chuỗi chứng chỉ có đủ file trung gian không, xem cách xác thực chứng chỉ SSL.
Xử lý các lỗi thường gặp khi chạy win-acme
Năm tình huống dưới đây chiếm phần lớn ca thất bại. Thông báo của win-acme khá dài, dòng đáng đọc nằm ở cuối màn hình sau chữ Create certificate failed.
Báo Authorization failed hoặc Invalid response from http://ten-mien. Máy chủ cấp chứng chỉ không gọi được vào cổng 80. Kiểm bản ghi A của tên miền, tường lửa Windows và tường lửa nhà cung cấp. Nếu website đang ép chuyển hướng sang HTTPS, tạm tắt luật chuyển hướng cho đường dẫn .well-known.
Báo lỗi 404 khi máy chủ cấp chứng chỉ lấy file challenge. Cấu hình IIS chặn file không có phần mở rộng. Thêm một mục staticContent cho phép kiểu MIME text/plain ở thư mục .well-known/acme-challenge, hoặc để win-acme dùng cách xác minh qua bản ghi DNS thay vì qua HTTP.
Báo Too many failed authorizations recently. Bạn đã thử hỏng quá số lần dịch vụ cho phép trong một giờ. Sửa nguyên nhân gốc rồi đợi hết giờ, chạy lại ngay chỉ tốn thêm một lượt vào bộ đếm.
Cài xong nhưng trình duyệt vẫn báo không an toàn. Binding HTTPS chưa được tạo, hoặc trang còn nhúng ảnh và script qua đường http://. Kiểm mục Bindings trong IIS Manager, sau đó mở công cụ dành cho nhà phát triển ở thẻ Console để thấy tài nguyên nào gọi sai.
Chứng chỉ hết hạn dù đã có tác vụ theo lịch. Thư mục win-acme đã bị chuyển hoặc xoá, hoặc tài khoản chạy tác vụ đã đổi mật khẩu. Chạy lại wacs.exe bằng quyền quản trị và chọn mục gia hạn để đặt lại lịch.
Việc cần theo dõi sau khi cài chứng chỉ
Chứng chỉ có hạn 90 ngày, win-acme tự gia hạn khi còn khoảng 55 ngày. Lượt gia hạn thất bại thì bạn vẫn còn hơn một tháng để xử lý, miễn là email thông báo khai đúng và có người đọc.
Bật chuyển hướng từ HTTP sang HTTPS trong IIS bằng module URL Rewrite để website chỉ chạy một địa chỉ, tránh việc Google xem hai địa chỉ là hai trang khác nhau. Nếu máy chủ còn chạy IIS 7 trên Windows Server bản cũ, quy trình khác nên xem cách cài đặt SSL trên IIS7. Trường hợp bạn có sẵn chứng chỉ dạng PFX mua ngoài và muốn dùng thay chứng chỉ miễn phí, xem cách convert SSL ra PFX bằng OpenSSL trên Windows.
Bài khác trong VPS Hosting & Máy chủ
Xem cả 17 bàiLàm theo vẫn chưa được?
Gửi yêu cầu hỗ trợ, kỹ thuật xem trực tiếp trên dịch vụ của Anh/Chị.