Hướng dẫn tạo mới và gia hạn tự động SSL wildcard của Let’s Encrypt

0
761

Như đã nói, Let’s Encrypt đã cho ra mắt wildcard SSL. Điều này giúp chúng ta nhàn hơn khá nhiều trong việc quản lý certificate. Wildcard SSL nghĩa là bạn chỉ cần 1 chứng chỉ duy nhất sử dụng cho mọi subdomain. VD *.hoctapit.com sẽ dùng được cho mọi tên miền cấp 2 của hoctapit.com như chemgio.hoctapit.com, xxx.hoctapit.com…

Lưu ý: không áp dụng cho chính tên miền hoctapit.com và tên miền cấp 3 dạng abc.xxx.hoctapit.com nhé. Với tên miền cấp 3 bạn cần phải đăng ký wildcard cho *.xxx.hoctapit.com

Tạo wildcard SSL không khó, các bạn có thể tham khảo ở trang hocvps.com

Tuy nhiên do mỗi lần tạo/gia hạn nó yêu cầu trỏ 1 bản ghi TXT để xác thực qua dns challenge nên không thể gia hạn tự động được. Để gia hạn tự động chúng ta cần Trang quản lý tên miền cấp DNS API. Tuy nhiên đa số không cung cấp cái này, nhất là mấy nhà quản lý tên miền Việt Nam, nên chúng ta sẽ phải trỏ tên miền qua Cloudflare. Mà thật ra nên trỏ qua Cloudflare dù có dùng wildcard ssl hay không vì nó có rất nhiều lợi thế như: miễn phí, cập nhật bản ghi siêu nhanh, chưa kể 1 loạt tính năng ngon nghẻ khác như CDN miễn phí…

Cách trỏ tên miền qua Cloudflare các bạn tìm tạm trên mạng nhé vì mình chưa có thời gian viết. Bây giờ mình chỉ hướng dẫn tạo wildcard SSL qua Dns Api của Cloudflare. Tạo thì có nhiều client nhưng mình sẽ dùng Certbot, đây là công cụ Official của Letsencrypt.

1. Cài certbot

Ngay trang chủ của nó đây đã hướng dẫn đầy đủ rồi: https://certbot.eff.org/

Của mình là dùng nginx và Centos 7 nên sẽ dùng câu lệnh:

Nếu bạn đã cài certbot rồi thì cần update nó lên bản mới nhất (bản 0.22 mới hỗ trợ wildcard)

Cài thêm Plugin  certbot-dns-cloudflare

2. Lấy DNS API cloudflare

Đăng nhập vào CF, góc trên bấm vào Email, chọn My profile

Kéo xuống dưới phần API Key, bấm View cái Global API key lên, copy nó.

Trên server bạn tạo 1 file cloudflare.ini với nội dung như sau:

Với email là email bạn dùng đăng ký Cloudflare, API là đoạn đã copy ở bước trên.

Lưu ý: file này chứa thông tin nhạy cảm nên cần bảo mật nó nếu server có nhiều người truy cập.

3. Tạo wildcard SSL

Câu lệnh như sau:

Lưu ý đường dẫn tới file cloudflare.ini

Nó sẽ hỏi bạn mấy cái như email, có đồng ý hay không bla bla thì chỉ cần gõ đồng ý là được.

Ở đây mình issue cho 2 domain là *.hoctapit.com và hoctapit.com lý do bởi wildcard SSL này không dùng được cho domain chính (hơi dị, chắc đây là lỗi và Letsencrypt họ sẽ khắc phục trong các phiên bản sau.

Như vậy là OK, config nginx (apache, haproxy…) như bình thường. Lưu ý cert sẽ lưu trong thư mục /etc/letsencrypt/live/hoctapit.com, dùng 1 cert duy nhất này config cho all subdomain, các sub đều trỏ đường dẫn tới file cert này thôi.

Kết quả: https://api.test.hoctapit.com/

Ở đây mình làm với domain *.test.hoctapit.com

4. Gia hạn

Gia hạn thì cứ đơn giản gõ lệnh

Theo khuyến cáo của certbot, nếu đặt cron bạn nên cho nó chạy 2 lần/ngày và chạy vào 1 khung giờ random nào đó để tránh quá tải hệ thống của Letsencrypt:

Ngoài ra, Certbot còn hỗ trợ các DNS API khác như DNS route53 (AWS), DigitalOcean, LuaDNS…

LEAVE A REPLY

Please enter your comment!
Please enter your name here