Tạo chứng chỉ SSL cho subdomain với Cloudflare & Docker

Let’s Encrypt giúp bạn dễ dàng tạo và cài đặt chứng chỉ SSL miễn phí bằng ứng dụng khách certbot ACME trên máy chủ web. Nhưng nếu bạn muốn dùng SSL cho subdomain mà không cần phải tạo certificate nhiều lần cho mỗi subdomain thì bạn làm như thế nào?

Bài viết này mình chia sẻ các bạn cách đơn giản để làm điều này với Cloudflare & Docker.

1. Challenge DNS hoạt động

Bạn tham khảo tài liệu Certbot giải thích về điều này rõ hơn, mình tóm lại các bước challenge như sau:

  • Certbot yêu cầu chứng chỉ từ máy chủ Let’s Encrypt
  • Máy chủ Let’s Encrypt trả về nội dung challenge
  • Plugin tạo bản ghi DNS TXT chứa nội dung challenge
  • Máy chủ Let’s Encrypt xác thực bản ghi DNS TXT
  • Máy chủ Let’s Encrypt cấp chứng chỉ

2. Các bước thực hiện

Các bạn chuẩn bị một server dùng máy áo, VPS hoặc máy tính cá nhân có cài đặt Docker. Ở đây, mình sử dụng Cloudflare làm nhà cung cấp DNS và mình sẽ tạo chứng chỉ cho domain test là  tova17.site .

Đầu tiên tạo các thư mục sau trên server:

Tiếp theo tạo một Cloudflare credentials. Các bạn cần phải có một tài khoản Cloudflare và trỏ domain cho ứng dụng muốn cài đặt trên này

Tạo một API token qua Cloudflare dashboard. Edit zone DNS 

Lưu token và tạo một file  cloudflare.ini

nano /etc/letsencrypt/cloudflare.ini

Điền nội dung như sau:

Lưu lại và thoát

Tiếp theo bạn chạy docker để cấp tạo certificate cho subdomain *.tova17.site

Khi chạy sẽ hỏi phần thông tin các bạn nhập email và chọn  Y  cho các câu hỏi như các bước bạn tạo certificate với  Letsencrypt.

Tất các các file cert sẽ lưu tại  /etc/letsencrypt/live/<domain>

Bây giờ các bạn dùng subdomain SSL mà không cần tạo certificate cho từng subdomain rồi.

Lưu ý: Letsencrypt certificate sẽ hết hạn trong 3 tháng do đó bạn cần tạo 1 shedule để tự động renew chúng.

Chúc các bạn thành công!

Subscribe
Notify of
guest
0 Góp ý
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x