Bài viết được thực hiện trên:
Tìm hiểu sâu hơn về letsencrypt tại
https://letsencrypt.org/docs/
TLS/SSL certificate được cung cấp bởi letsencrypt chỉ sử dụng được trong một thời gian ngắn và sẽ hết hiệu lực trong vòng 90 ngày. Vì vậy, cần có một phương pháp để cấp mới certificate cho website một cách tự động.
Bài viết này hướng dẫn cấp mới certificate bằng cách sử dụng acmetool. Cần chú ý rằng, đây không phải là một offical tool client của letsencrypt, vì acmetool chỉ tạo các SSL keys và certs chứ không tự động reconfigure lại các website được nhận (official enscrypt client tools có làm điều này).
1. Cấu hình NGINX cho website
Giả sử rằng, domain của website là www.example.com và được cấu hình NGINX để serve www.example.com port 80.
2. Cài đặt acmetool
Trên máy đã cài go:
https://github.com/hlandau/acme#getting-started
3. Run "acmetool quickstart" để config acme manually
- Let’s Encrypt Live Server — I want live certificates
- WEBROOT — Place challenges in a directory
Tham khảo chi tiết hơn tại
https://github.com/hlandau/acme#after-installation
4. Obtain SSL keys and certs cho website
chạy command sau:
Như đã đề cập ở trên, SSL certificate được cung cấp bởi letsencrypt sẽ bị expire trong vòng 90 ngày, vì vậy cần một cách để renew SSL cert một cách tự động. Cron job rất hữu ích trong trường hợp này.
Câu lệnh để renew:
để biết thêm chi tiết, chạy
https://github.com/hlandau/acme#renewal
Việc restart NGINX manually gây ra nhiều bất tiện, do đó acmetool cung cấp một "notification hooks system" cho phép bạn viết một script để tự động reload webserver mỗi khi cert được renew.
thanhnguyen@thanhnguyen:~$ lsb_release -r
Release: 14.04
Letsencrypt là một Certificate Authority (CA) cung cấp TLS/SSL certificate và enable encrypted HTTPs cho một web server. Ưu điểm của Letsencript là đơn giản, dễ sử dụng và đặc biệt, nó cung cấp các TLS/SSL certificate hoàn toàn miễn phí :D
Tìm hiểu sâu hơn về letsencrypt tại
https://letsencrypt.org/docs/
TLS/SSL certificate được cung cấp bởi letsencrypt chỉ sử dụng được trong một thời gian ngắn và sẽ hết hiệu lực trong vòng 90 ngày. Vì vậy, cần có một phương pháp để cấp mới certificate cho website một cách tự động.
Bài viết này hướng dẫn cấp mới certificate bằng cách sử dụng acmetool. Cần chú ý rằng, đây không phải là một offical tool client của letsencrypt, vì acmetool chỉ tạo các SSL keys và certs chứ không tự động reconfigure lại các website được nhận (official enscrypt client tools có làm điều này).
1. Cấu hình NGINX cho website
Giả sử rằng, domain của website là www.example.com và được cấu hình NGINX để serve www.example.com port 80.
2. Cài đặt acmetool
Trên máy đã cài go:
$ sudo apt-get install libcap-devTham khảo tại
$ git clone https://github.com/hlandau/acme
$ cd acme
$ make && sudo make install
https://github.com/hlandau/acme#getting-started
3. Run "acmetool quickstart" để config acme manually
# acmetool quickstartSau đó chọn:
- Let’s Encrypt Live Server — I want live certificates
- WEBROOT — Place challenges in a directory
https://github.com/hlandau/acme#after-installation
4. Obtain SSL keys and certs cho website
chạy command sau:
# acmetool want www.example.com5. Configure NGINX sử dụng SSL keys and certificate chain
# ls /var/lib/acme/live/www.example.com/
cert chain fullchain privkey url
server {6. Thiết lập cron job tự động renew SSL certificate
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /var/lib/acme/live/www.example.com/fullchain;
ssl_certificate_key /var/lib/acme/live/www.example.com/privkey;
... }
Như đã đề cập ở trên, SSL certificate được cung cấp bởi letsencrypt sẽ bị expire trong vòng 90 ngày, vì vậy cần một cách để renew SSL cert một cách tự động. Cron job rất hữu ích trong trường hợp này.
Câu lệnh để renew:
# /usr/local/bin/acmetool reconcile --batch
để biết thêm chi tiết, chạy
# /usr/local/bin/acmetool --helpFile cron:
# m h dom mon dow commandcron job sẽ chạy hằng ngày, tuy nhiên chỉ trong trường hợp SSL cert chỉ còn 30 ngày, acmetool sẽ cấp mới SSL cert
1 1 * * * /usr/local/bin/acmetool reconcile --batch
https://github.com/hlandau/acme#renewal
acmetool will try to renew certificates automatically once they are 30 days from expiry, or 66% through their validity period, whichever is lower. Note that Let's Encrypt currently issues 90 day certificates.Sau khi cấp mới cert, cần restart NGINX để load lại cert mới.
Việc restart NGINX manually gây ra nhiều bất tiện, do đó acmetool cung cấp một "notification hooks system" cho phép bạn viết một script để tự động reload webserver mỗi khi cert được renew.
acmetool's notification hooks system allows you to write arbitrary shell scripts to be executed when new certificates are obtained. By default, this is used to reload webservers automatically, but it can also be used to distribute certificates to other servers or for other purposes.
Không có nhận xét nào:
Đăng nhận xét