Được thành lập vào tháng 2016 năm XNUMX bởi Electronic Frontier Foundation (EFF), Let’s Encrypt là một chứng chỉ kỹ thuật số miễn phí và tự động cung cấp mã hóa TLS cho các trang web hoàn toàn miễn phí.
Mục tiêu của chứng chỉ Let’s Encrypt là tự động hóa việc xác thực, tạo, ký cũng như tự động gia hạn chứng chỉ bảo mật. Chứng chỉ này cho phép các kết nối được mã hóa đến máy chủ web bằng giao thức HTTPS một cách đơn giản, không phức tạp mà không có bất kỳ sự phức tạp nào. Chứng chỉ chỉ có giá trị trong 90 ngày mà sau đó tự động thay thế có thể được kích hoạt.
Đề xuất đọc:Cách Bảo Mật Apache Với Let’s Encrypt SSL Certificate Trên CentOS 8
Trong bài viết này, chúng tôi sẽ trình bày cách bạn có thể cài đặt Let’s Encrypt để có được chứng chỉ SSL miễn phí nhằm bảo mật máy chủ web Nginx trên CentOS 8 (các hướng dẫn tương tự cũng hoạt động trên RHEL 8). Chúng tôi cũng sẽ giải thích cho bạn cách tự động gia hạn chứng chỉ SSL của bạn.
Điều kiện tiên quyết
Trước khi chúng tôi tiến hành đảm bảo rằng bạn có những điều sau đây trong tầm kiểm soát.
1. Tên miền đủ điều kiện (FQDN) trỏ đến một địa chỉ IP chuyên dụng của máy chủ web. Điều này cần được định cấu hình trong khu vực máy khách của nhà cung cấp dịch vụ lưu trữ web DNS của bạn. Đối với hướng dẫn này, chúng tôi đang sử dụng tên miền trỏ đến địa chỉ
2. Bạn cũng có thể xác nhận điều này bằng cách thực hiện tra cứu chuyển tiếp bằng lệnh đào như hình minh họa.
$ dig itchiase.xyz
3. Nginx được cài đặt và chạy trên máy chủ web. Bạn có thể xác nhận điều này bằng cách đăng nhập vào thiết bị đầu cuối và chạy lệnh bên dưới. Nếu Nginx chưa được cài đặt, hãy làm theo bài viết của chúng tôi để Cài đặt Nginx trên CentOS 8.
$ sudo systemctl status nginx
4. Bạn cũng có thể xác minh bằng cách truy cập URL của máy chủ web trên trình duyệt web.
http://server-IP-or-hostname
Từ URL, chúng ta có thể thấy rõ rằng trang web không an toàn và do đó không được mã hóa. Điều này ngụ ý rằng bất kỳ yêu cầu nào được thực hiện đối với máy chủ web đều có thể bị chặn rằng điều này bao gồm thông tin quan trọng và bí mật như tên người dùng, mật khẩu, số an sinh xã hội và thông tin thẻ tín dụng để đề cập đến một số.
Bây giờ chúng ta hãy làm bẩn tay của chúng ta và cài đặt Let’s Encrypt.
Bước 1. Cài đặt Certbot trong CentOS 8
Để cài đặt chứng chỉ Let’s Encrypt, trước hết bạn cần phải cài đặt certbot. Đây là một ứng dụng khách có thể mở rộng tìm nạp chứng chỉ bảo mật từ Let’s Encrypt Authority và cho phép bạn tự động xác thực và cấu hình chứng chỉ để máy chủ web sử dụng.
Tải xuống certbot bằng lệnh curl.
$ sudo curl -O https://dl.eff.org/certbot-auto
Tiếp theo, di chuyển chứng chỉ đến thư mục / usr / local / bin.
$ sudo mv certbot-auto /usr/local/bin/certbot-auto
Tiếp theo, gán quyền tệp cho tệp certbot như hình minh họa.
$ chmod 0755 /usr/local/bin/certbot-auto
Bước 2. Cấu hình khối máy chủ Nginx
Một khối máy chủ trong Nginx tương đương với một máy chủ ảo trong Apache. Việc thiết lập các khối máy chủ không chỉ cho phép bạn thiết lập nhiều trang web trong một máy chủ mà còn cho phép certbot chứng minh quyền sở hữu miền cho Cơ quan cấp chứng chỉ – CA.
Để tạo một khối máy chủ, hãy chạy lệnh được hiển thị.
$ sudo vim /etc/nginx/conf.d/www.itchiase.xyz
Hãy chắc chắn để thay thế tên miền bằng tên miền của riêng bạn. Sau đó dán cấu hình bên dưới.
server { server_name www.itchiase.xyz; root /opt/nginx/www.itchiase.xyz; location / { index index.html index.htm index.php; } access_log /var/log/nginx/www.itchiase.xyz.access.log; error_log /var/log/nginx/www.itchiase.xyz.error.log; location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Lưu tệp và thoát khỏi trình soạn thảo văn bản.
Bước 3: Cài đặt cho phép mã hóa chứng chỉ trên CentOS 8
Bây giờ hãy sử dụng lệnh certbot để khởi tạo tìm nạp và cấu hình chứng chỉ bảo mật Let’s Encrypt.
$ sudo /usr/local/bin/certbot-auto --nginx
Lệnh này sẽ chạy và cài đặt nhiều gói Python và các phụ thuộc của chúng như được hiển thị.
Điều này sau đó sẽ được theo sau bởi một lời nhắc tương tác như được hiển thị:
Nếu mọi việc suôn sẻ, bạn sẽ có thể thấy một tin nhắn chúc mừng ở cuối cùng.
Để xác nhận rằng trang web Nginx của bạn đã được mã hóa, hãy tải lại trang web và quan sát biểu tượng ổ khóa ở đầu URL. Điều này chỉ ra rằng trang web được bảo mật bằng mã hóa SSL / TLS.
Để biết thêm thông tin về chứng chỉ bảo mật, hãy nhấp vào biểu tượng ổ khóa và chọn tùy chọn ‘Chứng chỉ‘.
Thông tin thêm về chứng chỉ bảo mật sẽ được hiển thị như hình dưới đây.
Ngoài ra, để kiểm tra độ mạnh của chứng chỉ bảo mật, hãy truy cập https://www.ssllabs.com/ssltest/ và tìm phân tích chuyên sâu và chính xác hơn về trạng thái của chứng chỉ bảo mật.
Bước 4: Gia hạn chứng chỉ Let’s Encrypt
As we saw earlier, the security certificate is only valid for a duration of 90 days and needs to be renewed before the expiry.
You can simulate or test the certificate renewal process by running the command:
$ sudo /usr/local/bin/certbot-auto renew --dry-run
Kết luận
Điều này kết thúc hướng dẫn này về cách bảo mật Nginx với Let’s Encrypt trên CentOS 8. Let’s Encrypt cung cấp một cách hiệu quả và không phức tạp để bảo mật máy chủ web Nginx của bạn, nếu không sẽ là một việc phức tạp để thực hiện thủ công.
Trang web của bạn bây giờ sẽ được mã hóa hoàn toàn. Một vài tuần trước ngày hết hạn của chứng chỉ, EFF sẽ thông báo cho bạn qua email để gia hạn chứng chỉ nhằm tránh gián đoạn có thể phát sinh do chứng chỉ đã hết hạn. Đó là tất cả các chàng trai cho ngày hôm nay!