HTTPS là ổ khoá trên thanh địa chỉ, và nay nó là mức tối thiểu: trình duyệt báo “không an toàn” với mọi trang không có nó. Trên hosting DirectAdmin, chứng chỉ miễn phí của Let’s Encrypt được cấp sẵn, phần lớn trường hợp quý Khách hàng không phải làm gì cả.
Bài này thay cho hai bài cũ, vì cách làm đã đổi hẳn.
1. Điều khác với các hướng dẫn cũ
Trước đây phải vào tự bật chứng chỉ cho từng tên miền. Bản DirectAdmin hiện nay tự cấp chứng chỉ: tạo một tên miền hoặc tên miền phụ xong, hệ thống tự xin chứng chỉ cho nó, và tự gia hạn trước khi hết hạn.
Nên việc của quý Khách hàng phần lớn chỉ là kiểm xem nó đã cấp được chưa, và xử lý khi nó báo không cấp được.
2. Đường vào
Account Manager → SSL/TLS Certificates.
Trang này có ba thẻ:
| Thẻ | Nội dung |
|---|---|
| Manage certificates | Danh sách chứng chỉ và tên miền chưa có chứng chỉ |
| ACME settings | Thiết lập việc tự cấp |
| Provisioning history | Lịch sử các lần cấp, thành công và thất bại |
3. Đọc trang Manage certificates
Certificate list liệt kê các chứng chỉ đang có:
| Cột | Nghĩa |
|---|---|
| Certificate | Tên chứng chỉ |
| DNS Names | Các tên miền mà chứng chỉ này phủ |
| Validity | Còn hiệu lực hay không |
| Expires | Ngày hết hạn |
| Renewal mode | Chế độ gia hạn. Để tự động |
Bên dưới là DNS names without TLS certificate: các tên miền chưa có chứng chỉ. Danh sách này nên rỗng. Có tên trong đó nghĩa là tên miền đó đang chạy không có HTTPS.
Thấp hơn nữa là Automatic certificate provisioning, phần nói hệ thống đã tự cấp được tới đâu.
4. Khi hệ thống báo không cấp được
Phần FAILED HTTP CHECKS liệt kê các tên miền không xin được chứng chỉ, kèm lý do. Nguyên văn giải thích của DirectAdmin:
Không xin được chứng chỉ tự động cho các tên này vì yêu cầu HTTP không tới được máy chủ này.
Ba nguyên nhân, theo thứ tự hay gặp:
a. Tên miền chưa trỏ về máy chủ này
Let’s Encrypt xác thực bằng cách gọi vào tên miền qua cổng 80 và kiểm một tệp mà máy chủ đặt ra. Tên miền chưa trỏ về đúng máy chủ thì lời gọi đó tới chỗ khác.
Kiểm:
# Dia chi ma ten mien dang tro toi
dig +short A <ten-mien-cua-ban>
Trên Windows: nslookup <ten-mien-cua-ban>.
Kết quả phải là địa chỉ IP của hosting. Lệch là phải sửa ở nơi quản lý tên miền, rồi chờ cập nhật, rồi thử lại.
b. Tên miền mới trỏ, chưa kịp lan ra
Đổi bản ghi DNS xong, các máy chủ trên Internet cần thời gian cập nhật, thường vài phút tới vài giờ.
Chờ rồi thử lại. Đừng bấm xin lại liên tục, xem mục 6.
c. Cổng 80 bị chặn, hoặc website chuyển hướng sai
Let’s Encrypt luôn gọi vào cổng 80, kể cả khi website chỉ chạy trên 443. Một quy tắc chuyển hướng quá rộng trong .htaccess có thể chặn luôn đường dẫn mà Let’s Encrypt dùng để xác thực.
Đường dẫn đó là /.well-known/acme-challenge/. Quy tắc chuyển hướng cần cho đường dẫn này đi qua trước khi chuyển mọi thứ còn lại sang HTTPS.
5. Xin chứng chỉ bằng tay
Với tên miền nằm trong danh sách chưa có chứng chỉ, bấm vào dấu ba chấm ở cuối dòng để xin cấp.
Khi xin, nhớ chọn cả tên miền có www và không có www, và nếu dùng hộp thư thì chọn cả mail.<ten-mien>. Thiếu mail. là phần mềm thư trên máy tính sẽ cảnh báo chứng chỉ không hợp lệ mỗi lần mở.
6. Giới hạn số lần xin, và vì sao đừng thử lại liên tục
Let’s Encrypt giới hạn số chứng chỉ cấp cho một tên miền trong một tuần.
Thử lại liên tục khi đang có lỗi là cách nhanh nhất để chạm giới hạn đó. Chạm rồi thì phải chờ hết chu kỳ, và trong lúc đó không xin được chứng chỉ nữa kể cả khi đã sửa đúng nguyên nhân.
Nên: lỗi thì đọc lý do ở phần FAILED HTTP CHECKS, sửa nguyên nhân, rồi mới thử lại một lần.
7. Sau khi có chứng chỉ
Bắt buộc chuyển hướng sang HTTPS. Có chứng chỉ nhưng vẫn vào được bằng http:// nghĩa là một phần người đọc vẫn đi đường không mã hoá.
Phần lớn phần mềm website có sẵn tuỳ chọn này. Với WordPress, đặt địa chỉ trang trong phần cài đặt sang https:// là đủ cho hầu hết trường hợp.
Kiểm lại nội dung lẫn lộn. Trang chạy HTTPS mà còn gọi ảnh hay mã lệnh qua http:// thì trình duyệt vẫn báo không an toàn. Nhấn F12, mở thẻ Console, các cảnh báo “mixed content” chỉ thẳng ra tệp nào.
8. Gia hạn
Chứng chỉ Let’s Encrypt có hạn 90 ngày, và DirectAdmin tự gia hạn khi cột Renewal mode để ở chế độ tự động.
Một việc đáng làm mỗi quý: mở trang này, xem cột Expires. Chứng chỉ còn dưới 30 ngày mà chưa được gia hạn thì có gì đó đang chặn, thường vẫn là ba nguyên nhân ở mục 4.
Chứng chỉ hết hạn là loại sự cố báo trước 90 ngày mà vẫn hay xảy ra, chỉ vì không ai nhìn.
9. Khi nào cần chứng chỉ trả phí
Let’s Encrypt đủ cho gần như mọi website. Chứng chỉ trả phí chỉ cần khi:
- Cần loại chứng chỉ xác thực tổ chức, hiện tên doanh nghiệp.
- Có yêu cầu từ đối tác hoặc từ quy định ngành.
- Cần cam kết bảo hiểm từ nhà cung cấp chứng chỉ.
Về mức mã hoá thì hai loại như nhau. Chứng chỉ trả phí không làm kết nối an toàn hơn. Xem bài về cài chứng chỉ trả phí trong cùng chuyên mục.
10. Khi cần hỗ trợ
Quý Khách hàng không xin được chứng chỉ, hãy nhắn qua khung chat ở góc phải màn hình kèm ba thông tin:
- Tên miền cần cấp.
- Nguyên văn dòng lỗi ở phần FAILED HTTP CHECKS.
- Kết quả
dig +short A <ten-mien>hoặcnslookup <ten-mien>.
Thông tin thứ ba thường trả lời được ngay, vì phần lớn trường hợp là tên miền chưa trỏ đúng chỗ.