Cách bảo mật Apache bằng Let's Encrypt trên Ubuntu 16.04
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt certificate TLS / SSL từ Let's Encrypt trên server Ubuntu 16.04 chạy Apache làm web server .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í.
Yêu cầu
Để hoàn thành hướng dẫn này, bạn cần :
- Server Ubuntu 16.04 với user không hỗ trợ sudo root mà bạn có thể cài đặt theo hướng dẫn Cài đặt Server Ban đầu của ta
-   Web server  Apache được cài đặt với một hoặc nhiều domain  được  cấu hình  đúng thông qua  Server  ảo chỉ định ServerName.
Khi đã sẵn sàng để tiếp tục, hãy đăng nhập vào server bằng account hỗ trợ sudo của bạn.
Bước 1 - Cài đặt ứng dụng Let's Encrypt
Chứng chỉ Let's Encrypt được tìm nạp thông qua phần mềm client chạy trên server của bạn. Ứng dụng khách chính thức được gọi là Certbot và các nhà phát triển của nó duy trì repository Ubuntu của riêng họ với các version cập nhật. Vì Certbot đang trong quá trình phát triển tích cực như vậy nên bạn nên sử dụng repository này để cài đặt version mới hơn Ubuntu cung cấp theo mặc định.
Đầ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 SSL
Việc tạo certificate SSL cho Apache bằng Certbot 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ố.
 Để thực hiện cài đặt tương tác và lấy certificate  chỉ bao gồm một domain , hãy chạy lệnh certbot như vậy, trong đó example.com là domain  của bạn:
- sudo certbot --apache -d example.com 
Nếu bạn muốn cài đặt một certificate hợp lệ cho nhiều domain hoặc domain phụ, bạn có thể chuyển chúng dưới dạng tham số bổ sung cho lệnh. Tên 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 làm đầu tiên trong danh sách, sau đó là bất kỳ domain phụ nào khác hoặc alias :
- sudo certbot --apache -d example.com -d www.example.com 
Đối với ví dụ này, domain  cơ sở sẽ là example.com .
 Nếu bạn có nhiều  server  ảo, bạn nên chạy certbot một lần cho mỗi  server  để tạo certificate  mới cho mỗi  server . Bạn có thể phân phối nhiều domain  và domain  phụ trên các  server  ảo  của bạn  theo bất kỳ cách nào.
 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 http và https hoặc buộc tất cả các yêu cầu chuyển hướng đến https . Thường an toàn nhất là yêu cầu https , trừ khi bạn có nhu cầu cụ thể về lưu lượng truy cập http không được mã hóa.
 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 .
Bước 3 - Xác minh Tự động gia hạn Certbot
 Chứng chỉ Let's Encrypt chỉ tồn tại trong 90 ngày. Tuy nhiên, gói certbot mà  ta  đã cài đặt sẽ giải quyết vấn đề này cho  ta  bằng cách chạy certbot renew hai lần một ngày thông qua bộ đếm thời gian systemd. Trên các bản phân phối không phải systemd, chức năng này được cung cấp bởi một tập lệnh cron được đặt trong /etc/cron.d . Tác vụ chạy hai lần mỗi ngày và sẽ gia hạn bất kỳ certificate  nào trong vòng ba mươi ngày kể từ ngày hết hạn.
 Để kiểm tra quá trình gia hạn, bạn có thể thực hiện chạy thử nghiệm với certbot :
- sudo certbot renew --dry-run 
Nếu bạn không thấy lỗi, bạn đã hoàn tất. Khi cần thiết, Certbot sẽ gia hạn certificate của bạn và reload Apache để áp dụng các thay đổi . Nếu quá trình gia hạn tự động không thành công, Let's Encrypt sẽ gửi một thông báo đến email bạn đã chỉ định, cảnh báo cho bạn khi certificate của bạn sắp hết hạn.
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 trang web được lưu trữ bằng Apache. Ta khuyên bạn nên kiểm tra blog chính thức của Let's Encrypt để biết các bản cập nhật quan trọng theo thời gian và đọc tài liệu Certbot để biết thêm chi tiết về ứng dụng client Certbot.
Các tin liên quan
Cách tạo chứng chỉ SSL tự ký cho Apache trong Ubuntu 16.042016-04-21
Cách thiết lập server ảo Apache trên Ubuntu 16.04
2016-04-21
Cách thiết lập Let's Encrypt chứng chỉ cho nhiều server ảo Apache trên Ubuntu 14.04
2016-01-19
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
 

