Thứ ba, 19/01/2016 | 00:00 GMT+7

Cách thiết lập Let's Encrypt chứng chỉ cho nhiều server ảo Apache trên Ubuntu 14.04

Chứng chỉ SSL được sử dụng trong web server để mã hóa lưu lượng giữa server và client , cung cấp thêm bảo mật cho user truy cập ứng dụng của bạn. Let's Encrypt cung cấp một cách dễ dàng để lấy và cài đặt các certificate tin cậy miễn phí.

Hướng dẫn này sẽ chỉ cho bạn cách cài đặt certificate TLS / SSL từ Let's Encrypt để bảo mật nhiều server ảo trên Apache, trong server Ubuntu 14.04.

Ta cũng sẽ trình bày cách tự động hóa quy trình gia hạn certificate bằng cron job.

Yêu cầu

Để hoàn thành hướng dẫn này, bạn cần :

Điều quan trọng là mỗi server ảo phải được cài đặt trong file cấu hình riêng và có thể được truy cập bên ngoài thông qua trình duyệt. Để có hướng dẫn chi tiết về cách cài đặt server ảo Apache trên Ubuntu đúng cách, hãy làm theo liên kết này .

Theo mục đích của hướng dẫn này, ta sẽ cài đặt certificate Let's Encrypt cho các domain example.comtest.com . Những điều này sẽ được tham chiếu trong suốt hướng dẫn, nhưng bạn nên thay thế chúng bằng các domain của bạn trong khi làm theo.

Khi đã sẵn sàng để tiếp tục, hãy đăng nhập vào server bằng account sudo của bạn.

Bước 1 - Download ứng dụng Let's Encrypt

Bước đầu tiên để sử dụng Let's Encrypt để lấy certificate SSL là cài đặt phần mềm certbot trên server của bạn. Các nhà phát triển Certbot duy trì repository Ubuntu của riêng họ với các version cập nhật của phần mềm. Vì Certbot đang trong quá trình phát triển tích cực nên bạn nên sử dụng repository này để cài đặt một Certbot mới hơn được cung cấp bởi Ubuntu.

Đầu tiên, thêm repository :

  • sudo add-apt-repository ppa:certbot/certbot

Bạn cần nhấn ENTER để chấp nhận. Sau đó, cập nhật danh sách gói để nhận thông tin gói của repository mới:

  • sudo apt-get update

Và cuối cùng, cài đặt Certbot từ repository mới với apt-get :

  • sudo apt-get install python-certbot-apache

Ứng dụng certbot Let's Encrypt hiện đã sẵn sàng để sử dụng.

Bước 2 - Cài đặt certificate

Việc tạo Chứng chỉ SSL cho Apache bằng ứng dụng certbot Let's Encrypt khá đơn giản. Máy khách sẽ tự động lấy và cài đặt certificate SSL mới hợp lệ cho các domain được cung cấp dưới dạng tham số.

Mặc dù có thể gộp nhiều certificate Let's Encrypt lại với nhau, ngay cả khi các domain khác nhau, bạn nên tạo các certificate riêng biệt cho các domain duy nhất. Theo nguyên tắc chung, chỉ các domain phụ của một domain cụ thể mới được group lại với nhau.

Tạo certificate SSL đầu tiên

Ta sẽ bắt đầu bằng cách cài đặt certificate SSL cho server ảo đầu tiên, example.com .

Ta sẽ thực hiện cài đặt tương tác và lấy certificate đi kèm hợp lệ cho một domain và một domain phụ, cụ thể là example.com dưới dạng domain cơ sở và www.example.com là domain phụ. Bạn có thể bao gồm bất kỳ domain phụ bổ sung nào hiện được cấu hình trong cài đặt Apache của bạn dưới dạng server ảo hoặc alias .

Chạy lệnh certbot với:

  • sudo certbot --apache -d example.com -d www.example.com

Lưu ý domain đầu tiên trong danh sách tham số sẽ là domain cơ sở được Let's Encrypt sử dụng để tạo certificate và vì lý do đó, ta khuyên bạn nên chuyển domain cấp cao nhất đầu tiên trong danh sách, tiếp theo là bất kỳ domain phụ hoặc alias bổ sung.

Đối với ví dụ này, domain cơ sở sẽ là example.com .

Sau khi các phần phụ thuộc được cài đặt, bạn sẽ thấy hướng dẫn từng bước để tùy chỉnh các tùy chọn certificate của bạn . Bạn cần cung cấp địa chỉ email để khôi phục khóa bị mất và các thông báo, đồng thời bạn có thể chọn giữa bật cả truy cập httphttps hoặc buộc tất cả các yêu cầu chuyển hướng đến https .

Khi quá trình cài đặt hoàn tất, bạn có thể tìm thấy các file certificate đã tạo tại /etc/letsencrypt/live . Bạn có thể xác minh trạng thái certificate SSL của bạn bằng liên kết sau (đừng quên thay thế example.com bằng domain cơ sở của bạn):

https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latest 

Đến đây bạn có thể truy cập trang web của bạn bằng tiền tố https .

Tạo certificate SSL thứ hai

Việc tạo certificate cho các server ảo bổ sung của bạn phải tuân theo cùng một quy trình được mô tả trong bước trước.

Lặp lại lệnh cài đặt certificate , bây giờ với server ảo thứ hai mà bạn muốn bảo mật bằng Let's Encrypt:

  • sudo certbot --apache -d test.com -d www.test.com

Đối với ví dụ này, domain cơ sở sẽ là test.com .

, bạn có thể xác minh trạng thái certificate SSL của bạn bằng liên kết sau (đừng quên thay test.com bằng domain cơ sở của bạn):

https://www.ssllabs.com/ssltest/analyze.html?d=test.com&latest 

Nếu bạn muốn tạo certificate cho các server ảo bổ sung, chỉ cần lặp lại quy trình và đừng quên sử dụng domain cấp cao nhất làm domain cơ sở của bạn.

Bước 3 - Cài đặt Tự động gia hạn

Chứng chỉ của Let's Encrypt chỉ có giá trị trong chín mươi ngày. Điều này nhằm khuyến khích user tự động hóa quy trình gia hạn certificate của họ. Ta cần cài đặt một lệnh chạy thường xuyên để kiểm tra các certificate hết hạn và tự động gia hạn chúng.

Để chạy kiểm tra gia hạn hàng ngày, ta sẽ sử dụng cron , một dịch vụ hệ thống tiêu chuẩn để chạy các công việc định kỳ. Ta yêu cầu cron phải làm gì bằng cách mở và chỉnh sửa một file có tên là crontab .

  • sudo crontab -e

Trình soạn thảo văn bản của bạn sẽ mở crontab mặc định là một file văn bản với một số văn bản trợ giúp trong đó. Dán vào dòng sau ở cuối file , sau đó lưu file :

crontab
. . . 15 3 * * * /usr/bin/certbot renew --quiet 

Phần 15 3 * * * của dòng này nghĩa là “chạy lệnh sau vào lúc 3:15 sáng, mỗi ngày”. Bạn có thể chọn bất kỳ lúc nào.

Lệnh renew cho Certbot sẽ kiểm tra tất cả các certificate được cài đặt trên hệ thống và cập nhật bất kỳ certificate nào được đặt để hết hạn trong vòng chưa đầy ba mươi ngày. --quiet yêu cầu Certbot không xuất thông tin cũng như chờ user nhập.

cron bây giờ sẽ chạy lệnh này hàng ngày. Vì ta đã cài đặt certificate của bạn bằng plugin --apache , Apache cũng sẽ được reload đảm bảo các certificate mới được sử dụng.

Để biết thêm thông tin về cách tạo và lập lịch công việc cron, bạn có thể xem Cách sử dụng Cron để tự động hóa công việc trong hướng dẫn VPS .

Kết luận

Trong hướng dẫn này, ta đã giới thiệu cho các bạn cách cài đặt certificate SSL miễn phí từ Let's Encrypt để bảo mật nhiều server ảo trên Apache. Ta khuyên bạn nên kiểm tra blog Let's Encrypt chính thức để biết các cập nhật quan trọng theo thời gian.


Tags:

Các tin liên quan

Cách bảo mật Apache bằng Let's Encrypt trên Ubuntu 14.04
2015-12-18
Cách thiết lập server lưu lượng truy cập Apache làm Reverse-Proxy trên Ubuntu 14.04
2015-10-03
Cách thiết lập một cụm thụ động chủ động Apache bằng máy tạo nhịp tim trên CentOS 7
2015-09-08
Cách bảo vệ server Apache với Fail2Ban trên Ubuntu 14.04
2015-08-14
Cách cài đặt Apache Kafka trên Ubuntu 14.04
2015-08-12
Cách thiết lập xác thực mật khẩu với Apache trên Ubuntu 14.04
2015-08-10
Cách bảo vệ chống lại DoS và DDoS với mod_evasive cho Apache trên CentOS 7
2015-07-30
Cách cài đặt LAMP (Linux, Apache, MySQL, PHP) trên Fedora 22
2015-07-08
Cách thiết lập mod_rewrite cho Apache trên Ubuntu 14.04
2015-06-27
Cách cài đặt Apache Tomcat 8 trên CentOS 7
2015-06-19