Thủ thuật Website

Hướng dẫn cách cài đặt chứng chỉ SSL trên Nginx

Bài viết này sẽ hướng dẫn bạn các bước để cài đặt chứng chỉ SSL của bạn trên Nginx và thiết lập chuyển hướng tự động từ HTTP: // sang HTTPS: //.
    1. Tải lên các chứng chỉ trên máy chủ nơi lưu trữ trang web của bạn

      Sau khi hoàn thành các bước tạo mã CSR và kích hoạt SSL , bạn sẽ nhận được một tệp zip có Chứng chỉ Sectigo (trước đây được gọi là Comodo) qua email. Ngoài ra, bạn có thể tải chúng xuống từ bảng điều khiển Tài khoản Sơ đồ tên của mình.

      Lưu ý : Nếu bạn chọn máy chủ NGINX khi kích hoạt chứng chỉ, bạn sẽ nhận được tệp zip có chứa tệp Chứng chỉ với phần mở rộng ‘.crt’ và tệp gói của Tổ chức phát hành chứng chỉ (CA) với ‘.ca-pack’ sự mở rộng.

      Tải cả hai tệp lên máy chủ của bạn theo bất kỳ cách nào bạn muốn. Ví dụ: bằng cách sử dụng một ứng dụng khách FTP.

      Bạn cũng có thể tải xuống tệp Gói cho từng Chứng chỉ bằng cách làm theo hướng dẫn tại đây .

 

    1. Kết hợp tất cả các chứng chỉ vào một tệp duy nhất

      Bạn cần phải kết hợp tất cả các Chứng chỉ ( your_domain.crt và your_domain.ca-pack ) trong một tệp ‘.crt’.

      Chứng chỉ cho miền của bạn phải xuất hiện đầu tiên trong tệp, sau đó là chuỗi Chứng chỉ (Gói CA).

      Nhập thư mục mà bạn đã tải lên các tệp chứng chỉ. Chạy lệnh sau để kết hợp các tệp:

      $ cat your_domain.crt your_domain.ca-bundle >> your_domain_chain.crt

      Xin lưu ý rằng nếu các tệp chứng chỉ được tải xuống từ tài khoản Namecheap của bạn, lệnh tốt nhất để sử dụng sẽ là:

      $ cat your_domain.crt > your_domain_chain.crt ; echo >> your_domain_chain.crt ; cat your_domain.ca-bundle >> your_domain_chain.crt

      Ngoài ra, bạn có thể kết hợp các tệp bằng công cụ trực tuyến này và làm theo các bước bên dưới:

      • Mở tệp your_domain.crt trong trình soạn thảo văn bản và sao chép mã chứng chỉ, bao gồm các thẻ ‘—– BEGIN CERTIFICATE —–‘ và ‘—– END CERTIFICATE —–‘.
      • Truy cập liên kết decoder.link và mở tab Bộ giải mã SSL & CSR .
      • Dán mã văn bản your_domain.crt vào trường bắt buộc và nhấn Giải mã .

      • Tiếp theo, cuộn xuống kết quả và tìm phần Gói (Nginx) trong phần Thông tin chung .
      • Nhấp vào biểu tượng đĩa mềm ở bên phải để tải xuống tệp đã tạo.

      • Tệp ‘nginx_bundle.zip’ sẽ được tải xuống PC của bạn. Giải nén nó và sử dụng tệp nginx_bundle_l3s4k9n1l0s3.crt (phần ‘ l3s4k9n1l0s3′ của tên là một chuỗi chữ và số ngẫu nhiên) để cài đặt.

      Đó là nó!

 

  1. Tạo một khối máy chủ Nginx riêng biệt hoặc Sửa đổi tệp cấu hình hiện có

    Để cài đặt chứng chỉ SSL trên Nginx, bạn cần hiển thị cho máy chủ những tệp nào sẽ sử dụng, bằng cách a) tạo tệp cấu hình mới hoặc b) chỉnh sửa tệp hiện có.

        a) Bằng cách thêm tệp cấu hình mới cho trang web, bạn có thể đảm bảo rằng không có vấn đề gì với tệp cấu hình riêng biệt. Hơn nữa, sẽ khá dễ dàng hơn để khắc phục sự cố cài đặt trong trường hợp có bất kỳ sự cố nào với cấu hình mới.

    Chúng tôi khuyên bạn nên tạo một tệp cấu hình mới trong thư mục này:

    /etc/nginx/conf.d

    Điều đó có thể được thực hiện thông qua lệnh này:

    sudo nano /etc/nginx/conf.d/Your_domain*-ssl.conf

    Your_domain*-ssl.confTên của tệp mới được tạo ở đâu .

    Tiếp theo, sao chép và dán một trong các khối máy chủ bên dưới cho cổng 443 và chỉnh sửa các thư mục. Đảm bảo tên máy chủ và đường dẫn đến webroot khớp trong cả khối máy chủ cho cổng 80 và khối cho cổng 443 . Nếu bạn có bất kỳ giá trị quan trọng nào khác cần được lưu, hãy chuyển chúng sang khối máy chủ mới được tạo.    b) Chỉnh sửa tệp cấu hình mặc định của máy chủ web, tệp này được đặt tên nginx.conf. Nó phải nằm trong một trong các thư mục sau:

    /usr/local/nginx/conf

    /etc/nginx

    /usr/local/etc/nginx

    Bạn cũng có thể sử dụng lệnh này để tìm nó:

    sudo find / -type f -iname "nginx.conf"

    Khi bạn tìm thấy nó, hãy mở tệp bằng:

    sudo nano nginx.conf

    Sau đó, sao chép và dán một trong các khối máy chủ cho cổng 443 được đưa ra bên dưới và chỉnh sửa các thư mục theo khối máy chủ của bạn cho cổng 80 (với tên máy chủ phù hợp, đường dẫn đến webroot và bất kỳ giá trị quan trọng nào bạn cần). Ngoài ra, bạn có thể sao chép khối máy chủ cho cổng 80, sau đó dán nó vào bên dưới, cập nhật cổng và thêm các chỉ thị liên quan đến SSL cần thiết.

    Chọn khối máy chủ:

    Dưới đây, bạn có thể tìm thấy khối máy chủ cho phiên bản Nginx của mình .

    Lưu ý : Để kiểm tra phiên bản Nginx của bạn, hãy chạy lệnh sau:

    sudo nginx -v

    Lưu ý : Thay thế các giá trị tên tệp, chẳng hạn như your_domain_chain.crt, trong khối máy chủ bằng thông tin chi tiết của bạn và sửa đổi các tuyến đến chúng bằng cách sử dụng/path/to/.

    • Khối máy chủ cho Nginx phiên bản 1.14 trở xuống:

    server {

    listen 443;

    ssl on;

    ssl_certificate /path/to/certificate/your_domain_chain.crt;

    ssl_certificate_key /path/to/your_private.key;

    root /path/to/webroot;

    server_name your_domain.com;

    }

    Lưu ý : Bạn có thể chỉ định nhiều tên máy chủ trong cấu hình như vậy, nếu cần, ví dụ :

    server {

    listen 443;

    ssl on;

    ssl_certificate /path/to/certificate/your_domain_chain.crt;

    ssl_certificate_key /path/to/your_private.key;

    root /path/to/webroot;

    server_name your_domain.com www.your_domain.com;

    }

    • Khối máy chủ cho Nginx phiên bản 1.15 trở lên:

    server {

    listen 443 ssl;

    ssl_certificate /path/to/certificate/your_domain_chain.crt;

    ssl_certificate_key /path/to/your_private.key;

    root /path/to/webroot;

    server_name your_domain.com;

    }

    • ssl_certificatesẽ được trỏ đến tệp có các chứng chỉ kết hợp mà bạn đã tạo trước đó .
    • ssl_certificate_keyphải được trỏ đến Khóa riêng tư được tạo bằng mã CSR .
      Dưới đây là một số mẹo về cách tìm Khóa riêng tư trên Nginx.


    Quan trọng
     : Đối với Chứng chỉ Đa miền hoặc Chứng chỉ ký tự đại diện , bạn sẽ cần thêm một khối máy chủ riêng cho từng miền / miền phụ được bao gồm trong Chứng chỉ. Đảm bảo bạn chỉ định miền / miền phụ được đề cập cùng với các đường dẫn đến các tệp Chứng chỉ giống nhau trong khối máy chủ, như được mô tả ở trên.

    Sau khi khối máy chủ tương ứng được thêm vào tệp, hãy đảm bảo bạn lưu các chỉnh sửa. Sau đó, bạn có thể kiểm tra kỹ các thay đổi được thực hiện theo các bước sau.

    Chạy lệnh này để xác minh rằng cú pháp tệp cấu hình là ổn:

    sudo nginx -t

    Nếu bạn nhận được lỗi, hãy kiểm tra lại xem bạn đã làm theo đúng hướng dẫn chưa. Vui lòng liên hệ với Nhóm hỗ trợ của chúng tôi nếu bạn có bất kỳ câu hỏi nào.

    Đây là mẹo : để tìm nhật ký lỗi để khắc phục sự cố, chỉ cần chạy:

    sudo nginx -T | grep 'error_log'

    Trong trường hợp không có tệp nào được đề cập tồn tại, các tệp được nhận xét hoặc nếu không có tệp nhật ký lỗi nào được chỉ định, cần kiểm tra nhật ký hệ thống mặc định:

    tail /var/log/nginx/error.log -n 20

    Nếu máy chủ hiển thị kiểm tra thành công, hãy khởi động lại Nginx bằng lệnh này để áp dụng các thay đổi:

    sudo nginx -s reload

    Bây giờ Chứng chỉ SSL của bạn đã được cài đặt. Bạn có thể kiểm tra cài đặt tại đây .

    Lưu ý quan trọng :

    Đôi khi, sau khi cài đặt tệp SSL được kết hợp bằng dòng lệnh, bạn có thể nhận được Nginx/Apache error: 0906D066:PEM routines:PEM_read_bio:bad end linethông báo lỗi ”, trong trường hợp này, bạn có thể tìm thấy giải pháp thay thế trong hướng dẫn tham khảo.

    Một vấn đề phổ biến khác trong giai đoạn này là Nginx SSL: error:0B080074:x509 certificate routines: X509_check_private_key:key values mismatchthông báo lỗi ”, bạn có thể tìm thêm chi tiết về nó và các cách khắc phục trong bài viết này .

  2. Định cấu hình chuyển hướng HTTPS

    Chúng tôi khuyên bạn nên cài đặt chuyển hướng từ HTTP sang HTTPS. Bằng cách đó, khách truy cập trang web của bạn sẽ chỉ có thể truy cập vào phiên bản bảo mật của trang web của bạn.

    Để thực hiện việc này, bạn sẽ cần thêm một dòng vào tệp cấu hình với khối máy chủ cho cổng 80.

    Lời khuyên:

    • Bạn có thể sử dụng một trong các lệnh sau để tra cứu các tệp cấu hình được bật ngay bây giờ:

    sudo nginx -T | grep -iw "configuration file"

    sudo nginx -T | grep -iw "include"

    • Các đường dẫn mặc định đến tệp conf là:

    trên Hệ điều hành Linux dựa trên RHEL:/etc/nginx/conf.d/default.conf

    trên Hệ điều hành Linux dựa trên Debian:/etc/nginx/sites-enabled/default

    • Bạn có thể mở tệp để kiểm tra tệp nào chứa khối máy chủ cần thiết. Đối với điều này, hãy chạy:

    sudo nano name_of_the_file

    Khi bạn tìm thấy tệp có chứa khối máy chủ cho cổng 80 (cổng HTTP mặc định), hãy thêm vào dòng sau:

    return 301 https://$server_name$request_uri;

    Note: The above redirect rule should be entered as the last line in the server block.

    • return là chỉ thị chính để sử dụng.
    • 301 là chuyển hướng vĩnh viễn (302 là chuyển hướng tạm thời).
    • https là một kiểu lược đồ được chỉ định (kiểu rõ ràng thay vì $scheme biến).
    • $server_name biến sẽ sử dụng miền được chỉ định trong chỉ thị server_name.
    • $request_uri biến được sử dụng để so khớp các đường dẫn đến các trang / phần được yêu cầu của trang web (mọi thứ sau tên miền).

    Dưới đây là ví dụ về các khối máy chủ với chuyển hướng HTTPS:

    Chuyển hướng vĩnh viễn đến HTTPS

    server {

    listen 80;

    server_name your_domain.com www.your_domain.com;

    return 301 https://$server_name$request_uri;

    }

    Chuyển hướng vĩnh viễn đến HTTPS không phải www

    server {

    listen 80;

    server_name your_domain.com www.your_domain.com;

    return 301 https://your_domain.com$request_uri;

    }

    Chuyển hướng vĩnh viễn đến HTTPS www

    server {

    listen 80;

    server_name your_domain.com www.your_domain.com;

    return 301 https://www.your_domain.com$request_uri;

    }

    Chuyển hướng tạm thời đến HTTPS không phải www

    server {

    listen 80;

    server_name your_domain.com www.your_domain.com;

    return 302 https://your_domain.com$request_uri;

    }

     

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button