Cài đặt chứng chỉ SSL miễn phí trên LEMP Stack với Let’s Encrypt



Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề

Let’s Encrypt là một Dự án cộng tác của Quỹ Linux, cơ quan cấp chứng chỉ mở, được cung cấp bởi Nhóm nghiên cứu bảo mật Internet. Miễn phí cho bất kỳ ai sở hữu tên miền sử dụng Let’s Encrypt để lấy chứng chỉ đáng tin cậy. Khả năng tự động hóa quá trình gia hạn, cũng như làm việc để giúp cài đặt và cấu hình dễ dàng hơn. Giúp giữ an toàn cho các trang web và nâng cao các phương pháp bảo mật TLS. Duy trì sự minh bạch, với tất cả các chứng chỉ được công khai để kiểm tra. Cho phép người khác sử dụng các giao thức phát hành và gia hạn của họ như một tiêu chuẩn mở.



Về cơ bản, Let’s Encrypt đang cố gắng đảm bảo an ninh không phụ thuộc vào các vòng lặp vô lý do các tổ chức lớn, vì lợi nhuận tạo ra. (Bạn có thể nói rằng tôi tin tưởng vào mã nguồn mở và đây là mã nguồn mở tốt nhất).



Có hai tùy chọn: tải xuống gói và cài đặt từ kho lưu trữ hoặc cài đặt trực tiếp trình bao bọc certbot-auto (trước đây là letsencrypt-auto) từ letsencrypt.



Để tải xuống từ kho

sudo apt-get install letsencrypt -y

Sau khi cài đặt xong, đã đến lúc nhận chứng chỉ của bạn! Chúng tôi đang sử dụng phương thức độc lập certonly, tạo ra một phiên bản của máy chủ chỉ để lấy chứng chỉ của bạn.



sudo letsencrypt certonly –standalone –d example.com -d subdomain.example.com -d othersubdomain.example.com

ssl1

Nhập email của bạn và đồng ý với các điều khoản dịch vụ. Bây giờ bạn sẽ có chứng chỉ phù hợp cho từng miền và miền phụ mà bạn đã nhập. Mỗi miền và miền phụ đều bị thử thách, vì vậy nếu bạn không có bản ghi dns trỏ đến máy chủ của mình, yêu cầu sẽ không thành công.

Nếu bạn muốn kiểm tra quá trình này, trước khi nhận được chứng chỉ thực của mình, bạn có thể thêm –test-cert làm đối số sau certonly. Lưu ý: –test-cert cài đặt chứng chỉ không hợp lệ. Bạn có thể làm điều này không giới hạn số lần, tuy nhiên nếu bạn sử dụng chứng chỉ trực tiếp thì sẽ có giới hạn về tỷ lệ.

ssl2

Các miền thẻ hoang dã không được hỗ trợ và có vẻ như chúng sẽ không được hỗ trợ. Lý do được đưa ra là vì quá trình cấp chứng chỉ là miễn phí, bạn có thể yêu cầu bao nhiêu tùy ý. Ngoài ra, bạn có thể có nhiều miền và miền phụ trên cùng một chứng chỉ.

Chuyển sang cấu hình NGINX để sử dụng chứng chỉ mới có được của chúng tôi! Đối với đường dẫn đến chứng chỉ, tôi sử dụng đường dẫn thực, thay vì biểu thức chính quy.

Chúng tôi có SSL, cũng có thể chuyển hướng tất cả lưu lượng truy cập của chúng tôi đến nó. Phần máy chủ đầu tiên thực hiện điều đó. Tôi đã đặt nó để chuyển hướng tất cả lưu lượng truy cập, bao gồm cả các miền phụ, đến miền chính.

2016-05-16_122009

Nếu bạn đang sử dụng Chrome và không tắt các mật mã ssl được liệt kê ở trên, bạn sẽ nhận được err_spdy_inanoughate_transport_security. Bạn cũng cần chỉnh sửa tệp conf nginx trông giống như thế này để khắc phục lỗi bảo mật trong gzip

2016-05-16_122647

ssl3

Nếu bạn thấy rằng bạn đang nhận được một cái gì đó như quyền truy cập bị từ chối - bạn cần kiểm tra lại xem tên máy chủ (và root) có đúng không. Tôi vừa hoàn thành việc đập đầu vào tường cho đến khi bất tỉnh. May mắn thay trong cơn ác mộng máy chủ của tôi, câu trả lời đã đến - bạn quên thiết lập thư mục gốc của mình! Máu và bùn, tôi đặt vào gốc và nó ở đó, chỉ số đáng yêu của tôi.

Nếu bạn muốn thiết lập cho các miền phụ riêng biệt, bạn có thể sử dụng

2016-05-16_122342

Bạn sẽ được nhắc tạo mật khẩu cho tên người dùng (hai lần).

dịch vụ sudo nginx khởi động lại

Giờ đây, bạn sẽ có thể truy cập trang web của mình từ bất kỳ đâu bằng tên người dùng và mật khẩu, hoặc cục bộ mà không cần. Nếu bạn muốn luôn có một thử thách mật khẩu, hãy loại bỏ allow 10.0.0.0/24; # Thay đổi đường truyền mạng nội bộ của bạn.

Lưu ý khoảng cách cho auth_basic, nếu không đúng, bạn sẽ gặp lỗi.

Nếu bạn nhập sai mật khẩu, bạn sẽ gặp phải lỗi 403

ssl4

Một mục cuối cùng chúng ta cần làm, thiết lập tự động gia hạn chứng chỉ SSL.

Đối với điều này, một công việc cron đơn giản là công cụ phù hợp cho công việc, chúng tôi sẽ đặt nó làm người dùng gốc để ngăn lỗi quyền

(sudo crontab -l 2> / dev / null; echo ‘0 0 1 * * letsencrypt refresh’) | sudo crontab -

Lý do sử dụng / dev / null là để đảm bảo rằng bạn có thể ghi vào crontab, ngay cả khi trước đó không tồn tại.

3 phút đọc