Làm thế nào để thiết lập "Hãy mã hóa" Giấy chứng nhận SSL miễn phí trong Nginx (Ubuntu)
Nếu bạn đã đọc nhiều bài viết về mẹo bảo mật, bạn chắc chắn sẽ gặp một mẹo yêu cầu bạn cài đặt phần mở rộng "HTTPS ở khắp mọi nơi" để nó sẽ tự động chuyển hướng bạn đến phiên bản HTTPS của trang web bất cứ khi nào có thể . Điều xấu là HTTPS ở khắp mọi nơi mở rộng chỉ hoạt động khi trang web bạn đang truy cập đã triển khai SSL và đối với hầu hết các quản trị viên web, đó có thể là một nhiệm vụ khó khăn (và tốn kém). May mắn thay, với phong trào Let's Encrypt, các quản trị viên web dễ dàng thêm chứng chỉ SSL vào trang web của họ ngay bây giờ.
Trong quá khứ (và hiện tại), việc thiết lập chứng chỉ SSL yêu cầu bạn tạo khóa riêng trên máy chủ của bạn, sau đó mua chứng chỉ SSL từ Tổ chức phát hành chứng chỉ (có thể tốn kém) và cuối cùng, thiết lập nó trong máy chủ . Có rất nhiều kỹ thuật liên quan đến quá trình này và không thực hiện đúng cách sẽ khiến chứng chỉ SSL vô dụng. Với dự án Let's Encrypt, người ta có thể nhanh chóng thêm chứng chỉ SSL vào trang web của họ mà không mất bất kỳ chi phí nào. Và được hỗ trợ bởi những người chơi công nghiệp lớn như Mozilla, Akamai, Cisco, EFFIf bạn và Google, nó được hỗ trợ bởi hầu hết các trình duyệt và hệ điều hành.
Trong hướng dẫn này, chúng tôi sẽ đi qua các bước để thiết lập chứng chỉ Let's Encrypt SSL trong máy chủ Nginx. Chúng tôi đang sử dụng máy chủ Ubuntu 14.04 cho hướng dẫn này và giả sử bạn đang sử dụng máy chủ Nginx Ubuntu đang hoạt động. Hướng dẫn có thể khác với máy chủ Ubuntu 16.04.
Cài đặt Let's Encrypt
Đầu tiên, để cài đặt Let's Encrypt, bạn sẽ cần git
để sao chép nó từ kho git của nó. Cài đặt git bằng lệnh sau:
sudo apt-get cài đặt git bc
Sau khi cài đặt, sao chép kho lưu trữ của Let's Encrypt:
sudo git clone https://github.com/letsencrypt/letsencrypt / opt / letsencrypt
Thiết lập môi trường
Trước khi chúng tôi tiến hành cài đặt và thiết lập chứng chỉ SSL, điều quan trọng là cho phép truy cập vào thư mục .well-known
trong thư mục web root. Theo mặc định, tất cả các tệp và thư mục có dấu "." Ở phía trước tên tệp được ẩn và không thể truy cập công khai. Tuy nhiên, trong trường hợp này, chúng tôi sẽ cần cung cấp quyền cho công chúng truy cập vào thư mục .well-known
, vì đây là nơi Let's Encrypt sẽ lưu trữ một tệp đặc biệt để xác thực.
Tiếp tục vào thư mục cấu hình trang web Nginx của bạn và mở nó (nếu bạn có tệp cấu hình tùy chỉnh cho trang web của bạn) hoặc sử dụng mặc định:
cd / etc / nginx / sites-available sudo nano mặc định
Thêm các dòng sau vào khối máy chủ:
vị trí ~ /\.well-known {cho phép tất cả; }
Lưu (Ctrl + O) và đóng (Ctrl + x) tệp cấu hình.
Kiểm tra cấu hình Nginx của bạn:
sudo nginx -t
Nếu tất cả cấu hình hoạt động tốt, hãy tải lại cấu hình:
sudo dịch vụ nginx tải lại
Tạo chứng chỉ SSL
Bây giờ bạn đã hoàn thành cấu hình Nginx, điều tiếp theo là cài đặt chứng chỉ SSL.
Chuyển đến thư mục Let's Encrypt:
cd / opt / letsencrypt
Chạy lệnh sau để tạo chứng chỉ:
./letsencrypt-auto certonly -a webroot --webroot-path = / usr / share / nginx / html -d example.com
Có một vài điều cần thay đổi ở đây:
- Thay đổi
webroot-path
gốc tài liệu của trang web của bạn. Mặc định là “/ user / share / nginx / html, ” nhưng cấu hình của bạn có thể khác. - Thay đổi “example.com” thành tên miền của riêng bạn. Lưu ý rằng “example.com” và “www.example.com” là hai tên miền khác nhau. Nếu bạn muốn chứng chỉ hỗ trợ nhiều miền, chỉ cần thêm
-d example1.com
vào cuối lệnh. Ví dụ: để thiết lập chứng chỉ SSL cho các tên miền “example.com”, “www.example.com”, “example1.com” và “www.example1.com, ” sử dụng lệnh sau:
./letsencrypt-auto certonly -a webroot --webroot-path = / usr / share / nginx / html -d example.com -d www.example.com -d example1.com -d www.example1.com
Trong lần chạy đầu tiên, tập lệnh sẽ cài đặt một loạt các tệp Python trong hệ thống của bạn. Một khi nó được thực hiện, nó sẽ bắt đầu quá trình tạo chứng chỉ. Trước tiên, nó sẽ yêu cầu địa chỉ email của bạn:
Sau đó, bạn sẽ được nhắc đọc Điều khoản dịch vụ tại trang web Let's Encrypt. Chọn “Đồng ý”.
Nếu bạn thấy thông báo sau:
LƯU Ý QUAN TRỌNG: - Xin chúc mừng! Chứng chỉ và chuỗi của bạn đã được lưu tại /etc/letsencrypt/live/example.com/fullchain.pem. Chứng chỉ của bạn sẽ hết hạn vào ngày 2016-10-02. Để có được phiên bản mới hoặc được chỉnh sửa của chứng chỉ này trong tương lai, chỉ cần chạy lại allowencrypt-auto. Để gia hạn không tương tác * tất cả * của chứng chỉ của bạn, hãy chạy "tự động gia hạn mã hóa" - Nếu bạn thích Certbot, vui lòng xem xét hỗ trợ công việc của chúng tôi bằng cách: Đóng góp cho ISRG / Hãy mã hóa: https://letsencrypt.org/donate Đóng góp cho EFF: https://eff.org/donate-le
Điều đó có nghĩa là bạn đã tạo thành công chứng chỉ SSL cho (các) trang web của mình. Thay vào đó, nếu bạn thấy thông báo lỗi, hãy sửa lỗi và thử lại.
Kích hoạt chứng chỉ SSL cho trang web của bạn
Bây giờ bạn đã tạo chứng chỉ SSL, đã đến lúc kích hoạt nó cho trang web của bạn.
Quay trở lại thư mục cấu hình Nginx và mở tệp cấu hình của trang:
cd / etc / nginx / sites-available sudo nano mặc định
Tạo một khối máy chủ mới và thêm cấu hình sau vào trong khối:
máy chủ {server_name example.com www.example.com; nghe 443 ssl; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; }
Lưu và đóng tập tin.
Lưu ý : ở trên là một phiên bản đơn giản của khối cấu hình Nginx. Bạn nên thêm cấu hình tùy chỉnh của riêng mình vào khối.
Cuối cùng, kiểm tra cấu hình:
sudo nginx -t
Nếu mọi thứ đều ổn, hãy tải lại Nginx:
sudo dịch vụ nginx tải lại
Đó là nó. Bạn đã thiết lập thành công chứng chỉ SSL cho trang web của mình. Bây giờ bạn có thể tải phiên bản "https" của URL để xem nó hoạt động.
Tự động gia hạn, hãy mã hóa chứng chỉ SSL
Không giống như hầu hết các chứng chỉ SSL thương mại có giá trị trong tối thiểu một năm, chứng chỉ SSL của Let's Encrypt chỉ có giá trị trong ba tháng. Sau thời gian này, bạn sẽ phải gia hạn để tiếp tục sử dụng nó. Hãy mã hóa đi kèm với một tùy chọn renew
do đó bạn có thể dễ dàng gia hạn chứng chỉ của bạn mà không cần phải thông qua toàn bộ cài đặt một lần nữa. Các hướng dẫn sau đây cho bạn biết cách thiết lập công việc cron để tự động gia hạn chứng chỉ SSL của bạn.
Vẫn còn trong máy chủ của bạn, mở crontab:
sudo crontab -e
Thêm các dòng sau:
00 0 * * 1 / opt / letsencrypt / letsencrypt-auto gia hạn >> /var/log/le-renew.log 05 0 * * 1 /etc/init.d/nginx reload
Các dòng trên sẽ kiểm tra ngày hết hạn của chứng chỉ SSL của bạn vào mỗi thứ Hai lúc 12 giờ sáng và gia hạn chúng nếu nó hết hạn. Nó cũng sẽ tải lại Nginx (lúc 12.05 am) để đảm bảo giấy chứng nhận mới được sử dụng.
Lưu và đóng crontab.
Phần kết luận
Nếu bạn đang chạy một trang web nhỏ và muốn thêm SSL vào trang web của mình, Hãy mã hóa là một tùy chọn tuyệt vời để thêm độ tin cậy vào trang web của bạn. Đó là (tương đối) dễ dàng để thiết lập và chi phí không có gì (miễn phí, như trong bia), do đó, không có lý do gì để không sử dụng nó. Tuy nhiên, vì nó chỉ cung cấp chứng chỉ miền-Validated (DV) (loại chứng chỉ SSL cơ bản nhất) cho những công ty yêu cầu chứng chỉ SSL được xác nhận bởi Tổ chức có xác nhận (OV) hoặc Extended-Validation (EV). con đường để đi.
Internet2 - HTTPS