Gia hạn ssl cho nextcloud

Chứng chỉ SSL do Let’s Encrypt cấp có hạn 90 ngày. Bài này hướng dẫn gia hạn cho một máy chủ Nextcloud, kiểm xem việc gia hạn tự động có đang chạy không, và xử lý khi nó không chạy.

1. Trước tiên: kiểm chứng chỉ còn bao nhiêu ngày

Đăng nhập vào máy chủ qua SSH rồi chạy:

sudo certbot certificates

Lệnh này liệt kê mọi chứng chỉ trên máy, kèm tên miền và ngày hết hạn.

Hoặc kiểm từ bên ngoài, không cần đăng nhập:

echo | openssl s_client -connect <ten-mien-cua-ban>:443 -servername <ten-mien-cua-ban> 2>/dev/null \
  | openssl x509 -noout -dates

2. Việc quan trọng nhất: kiểm gia hạn tự động

Certbot tự cài sẵn một tác vụ hẹn giờ lúc cài đặt. Nếu nó đang chạy thì quý Khách hàng không phải làm gì cả, và phần lớn trường hợp là như vậy.

Kiểm bộ hẹn giờ của hệ thống:

systemctl list-timers | grep certbot

Có dòng trả về nghĩa là tác vụ đã được đặt. Nếu không, kiểm cách còn lại:

sudo ls -l /etc/cron.d/certbot

Chạy thử việc gia hạn mà không đổi gì thật:

sudo certbot renew --dry-run

Ra Congratulations, all simulated renewals succeeded nghĩa là mọi thứ sẵn sàng, tới hạn nó sẽ tự gia hạn. Đây là lệnh đáng chạy một lần mỗi vài tháng.

3. Gia hạn bằng tay

Khi cần gia hạn ngay, không chờ tác vụ tự động:

sudo certbot renew

Lệnh này chỉ gia hạn những chứng chỉ còn dưới 30 ngày. Chứng chỉ còn nhiều ngày sẽ bị bỏ qua, đó là hành vi đúng.

Muốn ép gia hạn dù còn hạn:

sudo certbot renew --force-renewal

⚠️ Đừng dùng --force-renewal theo thói quen. Let’s Encrypt giới hạn số lần cấp chứng chỉ cho một tên miền trong một tuần. Ép gia hạn nhiều lần sẽ chạm giới hạn đó, và lúc thật sự cần thì không cấp được nữa.

4. Cấp chứng chỉ lần đầu

Nếu máy chưa từng có chứng chỉ, chọn lệnh theo máy chủ web đang chạy:

# Apache
sudo certbot --apache -d <ten-mien-cua-ban>

# Nginx
sudo certbot --nginx -d <ten-mien-cua-ban>

Certbot tự sửa cấu hình máy chủ web và tự nạp lại cấu hình.

Nếu Nextcloud chạy trong container và máy chủ web nằm ngoài, dùng cách xác thực qua thư mục web:

sudo certbot certonly --webroot -w /duong/dan/toi/thu-muc-web -d <ten-mien-cua-ban>

5. Sau khi gia hạn: nạp lại cấu hình

Chứng chỉ mới chỉ có tác dụng khi máy chủ web đọc lại nó.

sudo systemctl reload apache2     # Apache tren Ubuntu, Debian
sudo systemctl reload nginx       # Nginx

Certbot thường tự làm việc này. Nếu không, thêm vào để lần sau tự chạy:

sudo certbot renew --deploy-hook "systemctl reload nginx"

6. Ba lỗi hay gặp

a. Cổng 80 bị chặn. Let’s Encrypt xác thực bằng cách gọi vào tên miền qua cổng 80. Cổng đó đóng thì không cấp được, kể cả khi website chỉ chạy trên cổng 443.

sudo ss -tlnp | grep ':80'

b. Tên miền không trỏ về máy này. Kiểm địa chỉ tên miền đang trỏ tới, so với địa chỉ thật của máy:

dig +short <ten-mien-cua-ban>
curl -s ifconfig.me

Hai giá trị phải khớp nhau.

c. Chạm giới hạn cấp phát. Thông báo có chữ too many certificates hoặc rate limit. Chờ hết chu kỳ giới hạn, và trong lúc chờ đừng thử lại liên tục, vì mỗi lần thử lại kéo dài thời gian chờ.

7. Riêng với Nextcloud

Sau khi đổi chứng chỉ, nếu Nextcloud báo cảnh báo về kết nối không an toàn trong mục kiểm tra cấu hình, kiểm hai thứ:

  • Giá trị overwriteprotocol trong tệp cấu hình config/config.php nên là https khi Nextcloud nằm sau một lớp proxy.
  • Xoá bộ nhớ đệm của trình duyệt rồi tải lại, vì trình duyệt giữ chứng chỉ cũ một lúc.

Ứng dụng đồng bộ trên máy tính và điện thoại thường tự nhận chứng chỉ mới, không phải cấu hình lại.

8. Việc nên làm định kỳ

Việc Nhịp
sudo certbot renew --dry-run Mỗi quý một lần
Xem ngày hết hạn bằng certbot certificates Mỗi quý một lần
Đặt cảnh báo khi chứng chỉ còn dưới 14 ngày Một lần, rồi để hệ thống giám sát lo

Hàng cuối đáng làm nhất. 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 được nhắc.

9. Khi cần hỗ trợ

Quý Khách hàng đang dùng Cloudzone Drive thì không phải tự gia hạn, Cloudzone lo phần đó.

Nếu quý Khách hàng tự dựng Nextcloud trên máy chủ ảo tại Cloudzone và gặp vướng, hãy nhắn qua khung chat ở góc phải màn hình, kèm tên miền và nguyên văn thông báo lỗi.

Hướng dẫn này có ích cho bạn?

Cần đặt dịch vụ? Xem cấu hình và giá tại bảng giá Cloudzone - đặt gói trực tuyến, nhận dịch vụ ngay sau thanh toán. Cần tư vấn, mở khung chat ở góc phải màn hình.

Hướng dẫn liên quan