Sunday, 16/12/2018
News
Home » Hosting & Domain » Hosting » Tạo chứng chỉ SSL Free với LetsEncrypt

Tạo chứng chỉ SSL Free với LetsEncrypt

Lấy chứng chỉ SSL

Cài đặt git:

Lấy chứng chỉ

 

Chờ một lúc cho Let’s Encrypt khởi chạy, bạn sẽ được hỏi một số thông tin, nhập chính xác nhé:

Nhập địa chỉ email để phòng khi mất private key còn có chỗ mà lấy lại:

Chứng chỉ SSL miễn phí

Sau đó phải chấp nhận điều khoản của Let’s Encrypt. Chọn Agree

Chứng chỉ SSL miễn phíTiếp tục, bạn cần nhập tên miền mà bạn muốn dùng SSL. Lưu ý nếu bạn muốn dùng nhiều SSL ví dụ cho cả example.comwww.example.com thì phải nhập cả hai vào, cách nhau bởi dấu cách.

Chứng chỉ SSL miễn phí

Nếu thành công, bạn sẽ nhận được thông báo như thế này:

IMPORTANT NOTES:

– If you lose your account credentials, you can recover through e-mails sent to you@example.com

– Congratulations! Your certificate and chain have been saved at/etc/letsencrypt/live/example.com/fullchain.pem. Your cert will expire on 2016-03-15. To obtain a new version of the certificate in the future, simply run Let’s Encrypt again.

– Your account credentials have been saved in your Let’s Encrypt configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Let’s Encrypt so making regular backups of this folder is ideal.

– If like Let’s Encrypt, please consider supporting our work by: Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

Bạn nhớ chú ý dòng chữ màu đỏ ở trên, đó là thư mục chưa file SSL của bạn và ngày hết hạn chứng chỉ.

File SSL gồm có:

  • cert.pem: Chứng chỉ SSL cho tên miền của bạn
  • chain.pem: Chứng chỉ của Let’s Encrypt
  • fullchain.pem: cert.pem và chain.pem được gộp lại thành một
  • privkey.pem: Private key của chứng chỉ

Lưu ý là thư mục lưu các file SSL của bạn tại đường dẫn /etc/letencrypt/live/example.com/

Cài đặt SSL lên máy chủ NGINX

Đối với NGINX:

Lưu lại và khởi động lại NGINX:

Cấu hình tự gia hạn SSL

Dành cho NGINX

Các chứng chỉ do Let’s Encrypt cung cấp chỉ có giá trị trong 90 ngày. Sau thời gian này bạn sẽ phải chạy lại lệnh ở bước 3 ở trên để lấy về chứng chỉ mới nếu không khi truy cập vào website của bạn sẽ có một cảnh báo chứng chỉ hết hạn. Nhưng tự gia hạn thế hơi nản nên mình sẽ hướng dẫn bạn cấu hình để Let’s Encrypt tự gia hạn SSL.

Giải pháp thích hợp nhất đó là tạo cron job để khi hết hạn thì sẽ tự động chạy lệnh gia hạn SSL nhưng có một vấn đề là chúng ta cần sử dụng plugin khác để tạo SSL chứ không thể dùng plugin Standalone ở trên vì nó yêu cầu phải tắt web server đi, như thế thì web sẽ không truy cập được. Có một plugin khác tên là Webroot có thể tạo SSL mà không cần tạm ngừng webserver.

Để sử dụng Webroot plugin, bạn phải chỉ định thư mục lưu mã nguồn của Website bạn, bạn hãy tìm trong file cấu hình domain NGINX mà mã nguồn web lưu ở thư mục nào thì chắc chắn bạn phải biết rồi đúng không còn để chắc chắn thì chạy lệnh sau, giả sử là mình đang tìm trong file cấu hình mặc định của NGINX còn bạn phải thay cái default thành tên file cấu hình NGINX của website bạn, nó nằm trong thư mục /etc/nginx/conf.d

Bây giờ bạn đã biết được thư mục lưu mã nguồn rồi, chúng ta có thể sử dụng plugin Webroot để tự động gia hạn chứng chỉ SSL bằng lệnh sau (Bạn cần thay giá trị –webroot-path bằng thư mục chứa mã nguồn của website và thay domain sau giá trị -d bằng domain của bạn):

Khi đã gia hạn thành công, bạn cần reload lại NGINX để có sử dụng chứng chỉ mới

2 câu lệnh bên trên là 2 câu lệnh dùng để gia hạn, bạn có thể tạo cron job để chạy 2 câu lệnh đó khi chứng chỉ gần hết hạn, tuy nhiên mình sẽ hướng dẫn 1 cách khác, cách này chỉ để cho bạn biết thôi.

Tạo file cấu hình Let’s Encrypt: Đơn giản quá trình gia hạn bằng cách tạo file cấu hình cho Let’s Encrypt:

Bây giờ hãy mở file ra và chỉnh sửa:

Đầu tiên, vô hiệu dòng server = https://acme-staging.api.letsencrypt.org/directory bằng cách thêm dấu# vào trước nó.

Tiếp tục bỏ dấu # đằng trước các dòng email, domains, webroot-path và sửa lại thông tin của bạn

Bây giờ thay vì phải nhập thông tin về email, đường dẫn đến thư mục code như câu lệnh bên trên thì sau khi ta tạo file cấu hình Let’s Encrypt, không cần nhập thông tin như thế nữa. Bây giờ câu lệnh gia hạn của chúng ta sẽ là, ngắn gọn hơn nhiều:

Tạo script để tự động hoá việc này, mình sẽ sử dụng shell script để nó tự chạy khi thời hạn của SSL còn ít hơn 30 ngày. Script này sẽ tự động chạy 1 tuần 1 lần, sở dĩ để 1 tuần là vì nhỡ cron chạy có bị lỗi thì chúng ta vẫn còn 30 ngày để thử lại.

Mình đã viết 1 shell script để làm việc này, bạn download nó về đây:

Sau đó dùng WinSCP up nó lên thư mục /usr/local/sbin và chạy lệnh sau:

Nếu  bạn muốn chạy script này ngay bây giờ, bạn có thể chạy lệnh: sudo le-renew-webroot , nó sẽ kiểm tra hạn SSL của bạn và nếu còn ít hơn 30 ngày, nó sẽ tiến hành gia hạn cho bạn còn nếu lớn hơn 30 ngày thì nó sẽ hiện ra thông báo số ngày còn lại

Bây giờ hãy tạo cronjob để nó tự động làm việc này, mở Crontab
Copy dòng sau bỏ vào đó:
Lưu lại và thoát. Xong!

1 Star2 Stars3 Stars4 Stars5 Stars6 Stars7 Stars8 Stars9 Stars10 Stars (1 votes, average: 10.00 out of 10)
Loading...

Leave a Reply

Your email address will not be published. Required fields are marked *

*

:cuoi: :hix: :hihihi: :kiss: :sexy: :dotay: :ngacnhien: :oh: :love: more »