Cài đặt chứng chỉ SSL Comodo Possitive lên NGINX

Cài đặt chứng chỉ SSL Comodo Possitive lên NGINX

Mấy ngày hôm nay, mình có nhận được một số email yêu cầu mình viết một hướng dẫn chi tiết cách cài đặt chứng chỉ SSL lên môi trường máy chủ và thiết lập nó cho website. Nhận thấy số lượng yêu cầu cũng lớn nên mình sẽ viết hướng dẫn này chia ra làm 2 bài, một bài cho Apache và một bài cho NGINX, cả hai đều làm trên hệ điều hành CentOS 6.5.

Về việc phân biệt các loại chứng chỉ SSL và mua SSL mình đã có nói trong phần đầu của bài Cài đặt SSL/HTTPS cho cPanelX rồi, bạn có thể vào đó tham khảo trước.

Ở trong bài hướng dẫn này, mình sẽ chỉ hướng dẫn cách cài đặt chứng chỉ SSL mà bạn đã mua ở một nhà cung cấp nào đó (Namecheap là tốt nhất, rẻ và bổ) chứ không hướng dẫn cách tự tạo Self-signed SSL trên máy chủ rồi cài đặt vì nó ẩn chứa nhiều rủi ro và khả năng bị trình duyệt chặn rất là cao.

Trong bài là mình lấy ví dụ cài SSL cho domain nguoivietweb.net, do đó bất cứ khi nào bạn thấy mình viết là nguoivietweb.net thì hãy thay thành domain của bạn.

Tổng quan trước khi cài đặt

Ở bài này mình sử dụng các cấu hình sau.

  • PositiveSSL (loại $9/năm ở Namecheap)
  • NGINX Webserver

Điều này có nghĩa là mình làm ơn các bạn nên chuẩn bị sẵn giống như thế chứ mình không thể hỗ trợ các bạn nếu bạn dùng một hệ điều hành khác hay một webserver khác.

Lưu ý trước khi cài đặt

Nếu domain bạn đang sử dụng dịch vụ ẩn thông tin đăng ký (Whois Protected) thì tháo ra và thiết lập email mà bạn đang dùng vào toàn bộ thông tin của domain.

Hoặc bạn nên thủ sẵn một email tên là admin@example.com (example.com là domain của bạn) để nhận email từ nhà cung cấp SSL và xác thực.

Tham khảo:

Các bước cài đặt SSL lên máy chủ

Bước 1. Tạo thư mục chứa chứng chỉ

Đây là thư mục sẽ chứa toàn bộ các file liên quan đến chứng chỉ mà trong bài này chúng ta sẽ tạo ra. Mình khuyến khích bạn nên đặt nó nằm riêng ở một thư mục nào đó mà bạn dễ tìm ra. Ở bài này mình sẽ sử dụng thư mục /etc/ssl/.

Tạo thư mục ssl/ trong thư mục /etc nào.

mkdir -p /etc/ssl

Và trong thư mục này, mình sẽ tạo ra 2 thư mục nữa tên là privatecsr.

mkdir -p /etc/ssl/private
mkdir -p /etc/ssl/csr

Chức năng của từng thư mục:

  • /etc/ssl/private – lưu giữ file .key chứa các key riêng tư để tạo CSR.
  • /etc/ssl/csr – chứa các file .csr để gửi yêu cầu xác nhận chứng thực đến nhà cung cấp SSL.

Xong.

Bước 2. Tạo Server Private Key

Trước tiên chúng ta sẽ cần tạo ra một Server Private Key cho server mà bạn cần cài đặt và kích hoạt SSL, mỗi server chỉ cần một Server Private Key là đủ.

Bây giờ mình muốn tạo server private key mang tên sv.nguoivietweb.net.key thì sẽ dùng lệnh sau để tạo.

openssl genrsa -out /etc/ssl/private/sv.nguoivietweb.net.key 2048

Output:

[root@sv.thachpham~]# openssl genrsa -out /etc/ssl/private/sv.nguoivietweb.net.key 2048
Generating RSA private key, 2048 bit long modulus
................+++
......................................................................+++
e is 65537 (0x10001)
[root@sv.thachpham ~]#

Bước 3. Tạo CSR Key

Bước này khá quan trọng nên làm từ từ, đọc tới đâu làm tới đó, đừng cầm đèn chạy trước Ô tô.

Do cuối cùng ta phải cần một file tên là .crt để kích hoạt SSL cho website nên ta sẽ cần tạo một CSR Key (Certificate Signing Request) để tạo ra một chuỗi mã hóa đặc biệt nhằm gửi yêu cầu xác thực chứng chỉ SSL cho domain mà mình cần thiết lập, hay nói đúng hơn là sau khi bạn gửi CSR Key đến nhà cung cấp, họ sẽ cấp cho bạn một file CRT phù hợp với CSR của bạn.

Mỗi domain sẽ có một CSR riêng biệt nên bạn sẽ cần làm lại bước này nếu sau này muốn xác thực cho các domain khác trên cùng server. Và mỗi khi chuyển server, bạn cũng cần tạo một CSR Key mới.

Ví dụ trên server của mình đã có một file Server Private Key tên là /etc/ssl/private/sv.nguoivietweb.net.key và mình muốn tạo thêm một file tên CSR là /etc/ssl/csr/nguoivietweb.net.csr thì sẽ viết lệnh như sau:

openssl req -new -key /etc/ssl/private/sv.nguoivietweb.net.key -out /etc/ssl/csr/nguoivietweb.net.csr

Và bây giờ, bạn sẽ nhập các thông tin sau (gõ không dấu). Bạn điền từ từ, nếu điền sai hãy ấn Ctrl + X (hoặc Ctrl + C, Ctrl + Z) rồi chạy lại lệnh trên để điền lại.

Country Name (2 letter code) [XX]: Mã quốc gia, đối với Việt Nam là VN.
 State or Province Name (full name) []: Tên tỉnh thành
 Locality Name (eg, city) [Default City]: Tên thành phố/quận huyện
 Organization Name (eg, company) [Default Company Ltd]: Tên công ty, doanh nghiệp
 Organizational Unit Name (eg, section) []: Lĩnh vực hoạt động
 Common Name (eg, your name or your server's hostname) []: Domain của website cần chứng thực (vd: nguoivietweb.net, không chứa www)
 Email Address []: Địa chỉ Email

Và 2 cái extra này bạn không cần nhập mà cứ Enter thôi.

Please enter the following 'extra' attributes
 to be sent with your certificate request
 A challenge password []:
 An optional company name []:

Và đây là mẫu điền của mình:

[root@gbld ~]# openssl req -new -key /etc/ssl/private/sv.nguoivietweb.net.key -out /etc/ssl/csr/nguoivietweb.net.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:VN
State or Province Name (full name) []:Ba Ria Vung Tau
Locality Name (eg, city) [Default City]:Vung Tau
Organization Name (eg, company) [Default Company Ltd]:Thach Pham Blog
Organizational Unit Name (eg, section) []:Blogging
Common Name (eg, your name or your server's hostname) []:nguoivietweb.net
Email Address []:contact@nguoivietweb.net

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Nếu tạo xong nó không thông báo gì nữa thì bạn đã làm thành công. Bây giờ việc tiếp theo là hãy in nội dung file /etc/ssl/csr/nguoivietweb.net.csr vừa tạo ra bằng lệnh sau:

cat /etc/ssl/csr/nguoivietweb.net.csr

Nội dung sẽ trả về là kiểu giống thế này:

-----BEGIN CERTIFICATE REQUEST-----
MIIC5DCCAcwCAQAwgZ4xCzAJBgNVBAYTAlZOMRMwEQYDVQQIDApCaW5oIER1b25n
MRMwEQYDVQQHDApCaW5oIER1b25nMRYwFAYDVQQKDA1HaXVwYmFubGFtZGVwMRAw
DgYDVQQLDAdMYW0gZGVwMRowGAYDVQQDDBFnaXVwYmFubGFtZGVwLmNvbTEfMB0G
CSqGSIb3DQEJARYQZXppdDkyQGdtYWlsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBANJ4f8Z+8VIAg3Q033BO83V78QBFiq2MeLamOGdG+cvrJFLL
ZhHcbvxOjYxSt/IsRgfUWbDSBZUWn77RtZN/WiJylMK1z8aftVr9/ysqLo1rRo/n
NLu7AOWD6mMDW/fnmcv8eDxH2NaHAhKMd2f6mnEZ9/x6V
ULtcYpmZ59JFqfc8UXKO+2eabc87EJTzsyfw06v9GBALVZLKjOPK89RWvI2bSTPb
UBwPhrKAlTHv8A+OXhfImOh1CRKxiZOOU
HeJzJG9qWpLX41l16C0Y+p7pQvU9T/ZAHUXmhhH2CyNgJfd8/kx7PywNGXauAHGw
GM4VEpCqjeHcLOpu1Ea5rW5WvSTYAHsy
-----END CERTIFICATE REQUEST-----

Ok, bây giờ hãy tạm để nguyên hiện trường.

Bước 4. Gửi xác thực SSL

Bước này có thể khác nhau nếu bạn mua SSL ở nhà cung cấp khác, toàn bộ khâu ở dưới là dành cho bạn nào dùng SSL ở Namecheap.

Bây giờ hãy vào website nhà cung cấp SSL mà bạn đã đặt mua, như mình thì mua ở Namecheap nên mình vào phần quản lý SSL và kích hoạt gói SSL mới mua, sau đó copy cái chuỗi CSR Key kia vào để kích hoạt như hình dưới.

cai-dat-ssl-apache-02

Sau khi ấn Next, đợi một chút nó sẽ dò tìm thông tin từ cái CSR Key của bạn và hiển thị ra như hình dưới, hãy chọn đúng email mà bạn đang sử dụng rồi ấn Next. Lưu ý rằng email này phải nhận được email từ người khác.

cai-dat-ssl-apache-03

Sau đó ấn chọn vào dấu xác nhận và ấn Proceed….

cai-dat-ssl-apache-04

Và nhập lại thông tin cá nhân rồi ấn Submit Order.

cai-dat-ssl-centos-05

Sau đó vào hộp thư email mà bạn đã chọn làm Approver Email sẽ thấy có 1 email gửi đến. Mở ra bạn sẽ nhận được 1 đường link kích hoạt và mã kích hoạt, hãy ấn vào và điền mã kích hoạt vào.

cai-dat-ssl-centos-06

Điền mã và ấn Next.

cai-dat-ssl-centos-07

Và đợi một xíu, mở lại email đăng ký SSL của bạn sẽ thấy hai email kiểu thế này.

cai-dat-ssl-centos-08

Bạn mở lần lượt hai email ra, 1 trong 2 email sẽ có đính kèm một file .zip thế này.

cai-dat-ssl-centos-09

Tải về giải nén ra bạn được 4 file .crt như thế này.

cai-dat-ssl-centos-10

Hãy upload toàn bộ nó vào thư mục /etc/ssl/.

Sau đó gộp nó lại thành 1 file (file domain-cua-ban.crt đặt ở đầu tiên). Ví dụ dưới đây là mình gộp 3 file (loại bỏ CARoot) lại thành 1 file .crt như ảnh trên:

cd /etc/ssl
cat thachpham_com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt > thachpham-bundle.crt

Bây giờ bạn đã có file thachpham-budle.crt rồi, chúng ta sẽ sử dụng nó cho NGINX.

Trường hợp bạn tải về mà chỉ có 2 tập tin thì cũng làm như trên, đó là gộp 2 tập tin lại thành một tập tin dạng .crt rồi sử dụng nó.

Bước 5. Kích hoạt SSL cho NGINX

Sau đó mở file cấu hình của domain cần sử dụng SSL ra (vd: /etc/nginx/conf.d/nguoivietweb.net.conf) và bắt đầu mổ xẻ. Trước khi mổ nó ra, hãy backup lại file này, mình cần các bạn hiểu là chúng ta sẽ làm gì.

Việc mà chúng ta cần làm đó là sửa các thiết lập hiện tại (dành cho port 80) thành thiết lập dành port 443, sau đó trỏ SSL Key đến file .key và .crt bạn đang có trong thư mục /etc/ssl vào. Sau đó chúng ta sẽ thiết lập cho port 80 của domain tự động redirect 301 về HTTPS.

Bây giờ bạn mở file cấu hình domain lên và tìm:


server {
  server_name nguoivietweb.net www.nguoivietweb.net;

Lưu ý là ở đoạn trên nếu không có phần Listen 80 thì mặc định nó sẽ sử dụng port 80 rồi, còn nếu file cấu hình của bạn có phần Listen 80 ở đây thì vẫn sửa thành:


server {
  listen 443 spdy ssl;
  server_name nguoivietweb.net www.nguoivietweb.net;

Chèn thêm vào dưới nó


    # SSL
    ssl on;
    ssl_certificate /etc/ssl/thachpham-bundle.crt;
    ssl_certificate_key /etc/ssl/private/sv.nguoivietweb.net.key;
    ssl_session_timeout 5m;
    ssl_session_cache  shared:SSL:10m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
    ssl_prefer_server_ciphers on;
    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
    ssl_stapling on;

Nhớ sửa lại đường dẫn lưu file .crt và file .key thật chính xác nhé.

Sau đó chèn thêm đoạn này vào đầu file:


server {
            listen   80;
            server_name nguoivietweb.net;
            return 301 https://nguoivietweb.net$request_uri;
}

Kết quả sau khi chèn xong nó sẽ gần giống như thế này:

server {
       listen         80;
       server_name    hoidap.nguoivietweb.net www.hoidap.nguoivietweb.net;
       return         301 https://$server_name$request_uri;
}

server {
    listen 443 spdy ssl;
    server_name  nguoivietweb.net www.nguoivietweb.net;
    keepalive_timeout  30;


    ssl on;
    ssl_certificate /etc/ssl/thachpham-bundle.crt;
    ssl_certificate_key /etc/ssl/private/sv.nguoivietweb.net.key;
    ssl_session_timeout  5m;
    ssl_session_cache    shared:SSL:10m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
    ssl_prefer_server_ciphers   on;
    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
    ssl_stapling on;
    root /home/nginx/domains/hoidap.nguoivietweb.net/public;

    location / {
        index index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$uri&$args;
     
    }

  include /usr/local/nginx/conf/staticfiles.conf;
  include /usr/local/nginx/conf/php.conf;
  include /usr/local/nginx/conf/drop.conf;

  }

Lưu lại và khởi động lại NGINX.

service nginx restart

Bước 6. Cấu hình SSL cho WordPress

Tiếp tục cài plugin WordPress HTTPS và đánh dấu như ảnh.

kich-hoat-ssl-cloudflare-03

Rồi chèn đoạn sau vào file wp-config.php

define('WP_HOME','https://nguoivietweb.net');
define('WP_SITEURL','https://nguoivietweb.net');

Tận hưởng thành quả đi nào.

Chữ HTTPS bị lỗi màu vàng

Đây chỉ là Warning chứ không phải lỗi, lý do là trong website của bạn vẫn còn một liên kết nào đó (file ảnh, CSS, Javascript) đang được tải với giao thức HTTP thông thường, kể cả các liên kết trỏ ra ngoài. Khi cài đặt plugin WordPress HTTPS hầu như đã khắc phục được lỗi SSL với Gravatar và ShareThis.

Nếu tình trạng vẫn còn, hãy ấn chuột phải vô trang và chọn Inspect Element, sau đó mở qua tab Console bạn sẽ thấy nó thông báo chính xác file nào đang được load với giao thức HTTP để sửa lại.

Ví dụ:

https://nguoivietweb.net/xxxx' was loaded over HTTPS, but displayed insecure content from 'https://nguoivietweb.net/xxxx.jpeg': this content should also be loaded over HTTPS.

Nếu bạn có gặp trục trặc gì khi làm theo bài này, hãy comment ở dưới kèm theo nội dung file cấu hình domain của bạn trên NGINX nhé. Cách làm cho Webserver Apache mình sẽ hướng dẫn sau.

Nguồn: Cài đặt chứng chỉ SSL Comodo Possitive lên NGINX | Thạch Phạm

Categories: Content Marketing, Digital Marketing, Google Ads, Kinh doanh, PHP, SEO, Server - Hosting, WordPress, WordPress Development, Wordpress Plugin, WordPress Theme, Wordpress Tutorial,
Tags: baemin, bán hàng online, bán hàng online trên facebook, bán hàng qua facebook, bán hàng quần áo, bán hàng thời trang, bán hàng trên baemin, bán hàng trên facebook, bán hàng trên fanpage, bán hàng trên grab, bán hàng trên marketplace, bán hàng trên now, bán hàng trên tiktok, báo cáo kết quả hoạt động kinh doanh, bí quyết kinh doanh online, bít tết Âu việt, black friday, buôn bán hàng thùng, buôn bán hàng thùng tuyển chọn, cách bán hàng online đắt khách, cách bán hàng trên marketplace, cách bán hàng trên tiktok, câu chuyện kinh doanh, câu chuyện thành công, chương trình khuyến mãi, công nghệ phần mềm bán hàng, cửa hàng cafe, cửa hàng minh tuấn mobile, cửa hàng phụ kiện, cửa hàng thời trang, cửa hàng thực phẩm, cửa hàng thực phẩm sạch, doanh số bán hàng, dox garage & coffee, dox garage & coffee, đăng ký bán hàng trên baemin, đăng ký bán hàng trên go food, đăng ký bán hàng trên grab, đăng ký bán hàng trên now, facebook, facebook pos, fanpage, file excel, file excel báo cáo kết quả kinh doanh, file excel quản lý kho, foodngon, go food, go jek, grab, halo mobile, khởi nghiệp, khởi nghiệp kinh doanh, khởi nghiệp kinh doanh thời trang, kinh doanh cafe, kinh doanh điện thoại, kinh doanh điện tử điện máy, kinh doanh đồ handmade, kinh doanh gì sau dịch, kinh doanh mỹ phẩm, kinh doanh mỹ phẩm online, kinh doanh nhà hàng, kinh doanh online, kinh doanh phụ kiện, kinh doanh quán cafe, kinh doanh shop thời trang, kinh doanh siêu thị mini, kinh doanh spa, kinh doanh thành công, kinh doanh thời trang, kinh doanh thời trang trẻ em, kinh doanh thực phẩm, kinh doanh thực phẩm sạch thành công, kinh doanh trên facebook, kinh doanh trên grab, kinh nghiệm bán hàng, kinh nghiệm kinh doanh, làm đồ handmade, lily shop, link kháng tài khoản quảng cáo, lụa tơ tằm bá minh, marketing online, mặt hàng dễ bán, mẹo bán hàng, mẹo bán hàng trên facebook, mẹo hay, ngày black friday năm 2020 là ngày nào?, now, now - foody, phầm mềm quản lý bán hàng miễn phí, phần mềm chốt đơn, phần mềm chốt đơn hàng, phần mềm miễn phí, phần mềm pos, phần mềm quản lý bán hàng, phần mềm quản lý bán hàng đáng tin cậy, phần mềm quản lý bán hàng miễn phí, phụ kiện ben & tony, phụ kiện ben & tony, phụ kiện hà xinh, quán cafe hiệu quả, quản lý cửa hàng, quản lý cửa hàng thời trang, quản lý nhà hàng, quản lý nhân viên, quản lý nhân viên cứng đầu, quản lý nhân viên thời vụ, quảng cáo thương hiệu, shop thời trang, shopee, siêu thị minimart, status, status bán hàng, status quảng cáo mỹ phẩm, stella spa, stt bán hàng online hài hước, stt tương tác bán hàng, t.u.s shop, tài khoản bị vô hiệu hóa, tài khoản facebook, tài khoản facebook bị vô hiệu hóa, tải miễn phí file excel quản lý kho, tăng doanh thu mùa black friday, thời trang kosta, thời trang mine, thời trang tú trần shop, thực phẩm sạch, thực phẩm sạch 02, thực phẩm sạch tâm an, thuê mặt bằng kinh doanh, tiki, tiktok, tú trần shop,
Cài đặt SSL miễn phí từ CloudFlare
Hướng dẫn WP Super Cache để tăng tốc website WordPress
Tác giả

Bình luận

Leave a Message

Registration isn't required.

NguyenLp LarTheme