Trang chủ / Website / Chứng chỉ SSL của Namecheap: Đánh Giá & Cách Cài Đặt cho Website trên Nginx

Chứng chỉ SSL của Namecheap: Đánh Giá & Cách Cài Đặt cho Website trên Nginx

Nếu bạn quan tâm đến bảo mật trang web hay tối ưu hóa công cụ tìm kiếm, giao thức HTTPS sẽ không phải là một thuật ngữ xa lạ.

Nhưng nếu bạn chỉ mới bắt đầu và đang sở hữu một website, bạn cũng nên biết rằng, HTTPS thực sự rất quan trọng đối với trang web của bạn.

Bởi vì:

Bạn có thể nhận biết một trang web có đang sử dụng HTTPS hay không bằng cách nhìn vào vị trí gõ tên miền trên trình duyệt.

Một website sử dụng HTTPS sẽ có hình ổ khóa ở đầu. Ngược lại, nó sẽ hiển thị chữ “Không bảo mật” nếu website đó không sử dụng HTTPS.

Website đang sử dụng HTTPS

Do HTPPS là một giao thức kết hợp giữa giao thức HTTP và giao thức bảo mật SSL nên để có thể sử dụng HTTPS, bạn cần phải cài đặt một chứng chỉ SSL.

Trong bài đăng này, tôi sẽ đánh giá về chứng chỉ SSL của Namecheap và cách cài đặt cho website trên máy chủ Nginx.

Xem thêm: Cách cài đặt website WordPress trên máy chủ Nginx

1. Namecheap SSL Certificate là gì?

Namecheap SSL Certificate là chứng chỉ SSL được mua tại Namecheap, một nhà cung cấp tên miền và dịch vụ lưu trữ website hàng đầu thế giới.

Họ cung cấp nhiều loại chứng chỉ SSL khác nhau dựa trên đối tượng và mục đích cụ thể.

Tuy nhiên với người dùng cá nhân, bạn nên lựa chọn chứng chỉ PositiveSSL bởi đây là một trong những chứng chỉ SSL phổ biến nhất trên thị trường.

Chứng chỉ Positive SSL phù hợp với blog, trang web cá nhân hoặc các trang web không giao dịch lượng lớn thông tin người dùng.

Trên thực tế, Namecheap không phải là nhà cung cấp chứng thực số mà chỉ là người bán lại (hay còn gọi là reseller).

Họ mua chứng chỉ SSL số lượng lớn với mức giá chiết khấu cao và cung cấp SSL cho khách hàng với giá thấp hơn so với giá gốc của cơ quan cấp chứng chỉ (Certificate Authority – CA).

Tất nhiên, nếu bạn mua chứng chỉ SSL của mình từ Namecheap, bạn cũng sẽ nhận được các tính năng tương tự của chứng chỉ mà tổ chức phát hành chứng chỉ cấp cho khách hàng của họ.

Cụ thể, tổ chức phát hành chứng chỉ mà Namecheap hợp tác đó là Comodo (nay là Sectigo).

Với hơn 700.000 khách hàng và hơn 20 năm kinh nghiệm, Sectigo là cơ quan cấp chứng chỉ thương mại lớn nhất thế giới.

2. Sự khác biệt giữa chứng chỉ PositiveSSL và Let’s Encrypt SSL

Bạn có thắc mắc: Tại sao chúng ta nên mua SSL trong khi hoàn toàn có thể sở hữu một chứng chỉ SSL miễn phí với Let’s Encrypt?

Dưới đây là sự khác biệt:

2.1 Chứng chỉ PositiveSSL mua tại Namecheap

PositiveSSL là loại chứng chỉ mang đến mã hóa (encryption), xác thực (validation) và độ tin cậy cho trang web của bạn.

Trong hầu hết các trường hợp, chứng chỉ có thể được cấp trong vòng 15 phút hoặc ít hơn.

Tính năng & Ưu điểm

Hỗ trợ mã hóa lên đến 256-bit

Độ dài khóa RSA từ 2048-bit

Kết nối HTTPS và loại bỏ cảnh báo “Không an toàn”

Quá trình xác nhận tự động nhanh chóng và không yêu cầu giấy tờ

Hiệu lực có sẵn lên đến 5 năm, tối thiểu 1 năm

Tương thích với tất cả các trình duyệt (99,9%)

Có sẵn tùy chọn chứng chỉ EV (Extended Validation)

Chính sách hoàn tiền trong 15 ngày

Bồi thường lên đến $10.000 nếu có sự cố từ CA

Hỗ trợ tuyệt vời từ đội ngũ của Namecheap

Nhược điểm

Bạn cần mua chứng chỉ ($8,88/năm hoặc $29,40/5 năm)

2.2 Chứng chỉ SSL miễn phí của Let’s Encrypt

Let’s Encrypt là một tổ chức phát hành chứng chỉ SSL miễn phí tự duy trì nhờ sự ủng hộ của các nhà tài trợ.

Tính năng & Ưu điểm

Hỗ trợ mã hóa lên đến 256-bit

Độ dài khóa RSA từ 2048-bit

Kết nối HTTPS và loại bỏ cảnh báo “Không an toàn”

Quá trình xác nhận tự động nhanh chóng và không yêu cầu giấy tờ

Hoàn toàn miễn phí

Nhược điểm

Không tương thích với một số nền tảng nhất định

Phải gia hạn thường xuyên, mỗi lần chỉ có giá trị trong 90 ngày

Không có tùy chọn EV

Không có bảo hành hoặc bồi thường nếu xảy ra sự cố

Không hỗ trợ khách hàng

3. Đánh giá chứng chỉ SSL của Namecheap

Về cơ bản, tôi không nhận thấy nhược điểm nào khi mua chứng chỉ SSL tại Namecheap.

Bởi vì họ cung cấp đầy đủ các quyền lợi như mua tại Sectigo nhưng với mức giá rẻ hơn.

Tuy nhiên, theo thông tin trên website của Sectigo, PositiveSSL sẽ được bảo hành $50.000 trong trường hợp có sự cố từ phía CA còn Namecheap thì chỉ bồi thường $10.000.

Sectigo Positive SSL

Nếu bạn sở hữu một trang web nhỏ, tôi nghĩ điều này không phải là một điểm trừ quá lớn.

5 lý do bạn nên mua chứng chỉ SSL tại Namecheap:

  • Chứng chỉ SSL giá rẻ và hợp túi tiền (chỉ $8,88/năm)
  • Khả năng tương tích với tất cả trình duyệt (99,9%)
  • Được bồi thường nếu xảy ra sự cố từ phía nhà phát hành chứng chỉ
  • Hỗ trợ tuyệt vời cho khách hàng thông qua trò chuyện trực tiếp
  • Tài khoản quản lý an toàn với tùy chọn Xác thực hai yếu tố (Two-Factor Authentication)
Tùy chọn xác thực hai yếu tố

4. Hướng dẫn mua SSL Certificate tại Namecheap

Bước 1: Truy cập trang sản phẩm PositiveSSL tại Namecheap.

Bước 2: Chọn số năm bạn muốn chứng chỉ có hiệu lực, tối đa 5 năm. Tôi thường chọn 1 năm.

Chọn số năm bạn muốn chứng chỉ SSL có hiệu lực

Bạn có thể bỏ qua tùy chọn “Quantity” (Số lượng), mặc định là 1 (tức bạn sẽ chỉ mua một chứng chỉ).

Tiếp theo, bạn nhấp vào nút “Add to Cart” (Thêm vào giỏ hàng).

Bước 3: Trang giỏ hàng hiện ra, bạn nhấp vào nút “Confirm Order” (Xác nhận đơn hàng).

Nếu có mã giảm giá, bạn điền vào ô “Promo Code” rồi nhấp vào nút “Apply”. Sau đó, bạn nhấp vào nút “Confirm Order”.

Xác nhận đơn hàng mua SSL

Bước 4: Đăng nhập vào tài khoản

Màn hình chuyển qua trang mới với hai tùy chọn: Đăng nhập vào tài khoản của bạn (Log In to Your Cccount) hoặc Đăng ký một tài khoản mới (Create An Account).

Trong trường hợp lần đầu bạn biết đến Namecheap, bạn cần tạo cho mình một tài khoản.

Đăng nhập vào tài khoản Namecheap hoặc đăng ký tài khoản mới

Bước 5: Bổ sung thông tin liên hệ tài khoản

Bạn được chuyển qua một trang mới để bổ sung thêm thông tin liên hệ cho tài khoản của mình.

Các trường thông tin bao gồm:

  • First Name: Bạn điền tên của mình. Ví dụ: Quan
  • Last Name: Bạn điền họ của mình. Ví dụ: Pham
  • Company Name: Tên công ty của bạn. Bạn có thể bỏ qua nếu đăng ký cho cá nhân.
  • Job Title: Chức vụ của bạn trong công ty. Bạn có thể bỏ qua nếu đăng ký cho cá nhân.

Nếu bạn đang đăng ký thay mặt cho công ty, bạn tích vào checkbox “I’m registering on behalf of a company”.

  • Address Line 1: Bạn điền địa chỉ của mình. Ví dụ:
  • Address Line 2: Bạn có thể bỏ qua.
  • City: Bạn điền tỉnh hoặc thành phố của mình. Ví dụ: Hanoi
  • State/Province: Bạn có thể bỏ qua.
  • Zip/Postal Code: Điền mã bưu chính tỉnh/thành phố của bạn, bao gồm 6 chữ số. Ví dụ mã bưu chính của Hà Nội là 100000.

Nếu bạn chưa biết mã bưu chính tỉnh/thành phố của mình, bạn có thể xem danh sách mã bưu chính 63 tỉnh thành Việt Nam.

  • Country: Bạn tùy chọn hoặc để mặc định vì Namecheap có thể xác định quốc gia dựa vào IP mạng của bạn.
  • Phone Number: Bạn chọn +84 và điền số điện thoại của mình vào ô bên cạnh. Bạn có thể bỏ qua checkbox “Add phone extension”.
  • Fax Number: Bạn có thể bỏ qua.
  • Email Address: Bạn có thể bỏ qua vì Namecheap tự động điền.

Sau đó, bạn nhấp vào nút “Continue” để tiếp tục.

Bổ sung thông tin liên hệ của tài khoản

Bước 6: Thêm phương thức thanh toán

Namecheap có nhiều phương thức thanh toán cho bạn lựa chọn, bao gồm:

  • Secure Card Payment: Thanh toán bằng các thẻ tín dụng phổ biến như VISA hoặc MasterCard.
  • Paypal: Thanh toán bằng tài khoản Paypal.
  • Account Funds: Thanh toán bằng số dư của tài khoản Namecheap.

Khi đã hoàn tất, bạn có thể tích vào checkbox “Save the configuration above to my default payment settings” nếu muốn sử dụng phương thức thanh toán đã chọn làm mặc định.

Sau đó, bạn nhấp vào “Continue” để tiếp tục.

Chọn phương thức thanh toán

Bước 7: Thanh toán đơn hàng của bạn và hoàn tất quá trình mua chứng chỉ SSL tại Namecheap.

Nếu phương thức thanh toán của bạn là VISA hoặc MasterCard, bạn nhấp vào nút “Pay Now”:

Thanh toán đơn hàng mua chứng chỉ SSL bằng thẻ MasterCard

Nếu phương thức thanh toán của bạn là Paypal, bạn nhấp vào nút “Check out with Paypal”:

Thanh toán đơn hàng mua chứng chỉ SSL bằng Paypal

Bạn cũng sẽ nhận được một email của Namecheap để thông báo về đơn hàng mà bạn đã mua.

5. Cách cài đặt chứng chỉ SSL cho website trên Nginx

Đầu tiên, bạn sẽ cần tạo một thư mục chứa chứng chỉ để dễ quản lý.

Bạn mở terminal console lên, gõ lệnh sau và nhấn phím Enter.

Lưu ý:

Tương tự khi cài đặt website trên Nginx, chúng ta cần sử dụng hai phần mềm là Bitvise SSH ClientNotepad++ để thực hiện quá trình cài đặt chứng chỉ SSL trên Nginx.

Nếu bạn chưa biết về hai phần mềm này cũng như terminal console, bạn có thể xem trong bài đăng này (mục 5.2 Chuẩn bị phần mềm để cài đặt).

mkdir -p /etc/ssl

Màn hình hiển thị:

root@marcomtoday:~# mkdir -p /etc/ssl
root@marcomtoday:~#

Trong thư mục này, bạn sẽ tạo ra hai thư mục nữa tên là private và csr bằng cách gõ tiếp lệnh sau:

mkdir -p /etc/ssl/private

Màn hình hiển thị:

root@marcomtoday:~# mkdir -p /etc/ssl
root@marcomtoday:~# mkdir -p /etc/ssl/private
root@marcomtoday:~#
mkdir -p /etc/ssl/csr

Màn hình hiển thị:

root@marcomtoday:~# mkdir -p /etc/ssl
root@marcomtoday:~# mkdir -p /etc/ssl/private
root@marcomtoday:~# mkdir -p /etc/ssl/csr
root@marcomtoday:~#

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

  • /etc/ssl/private: Lưu giữ tệp .key chứa các key riêng tư để tạo CSR (Certificate Signing Request).
  • /etc/ssl/csr: Chứa các tệp .csr để gửi yêu cầu xác nhận chứng thực đến nhà cung cấp SSL.

Để kiểm tra xem bạn đã tạo được thư mục ssl hay chưa, bạn gõ lệnh sau vào terminal console và nhấn phím Enter:

ls /etc

Màn hình hiển thị:

root@marcomtoday:~# ls /etc
acpi                           gai.conf         mailcap                  rcS.d
adduser.conf                   groff            mailcap.order            resolv.conf
alternatives                   group            manpath.config           rmt
apache2                        group-           mdadm                    rpc
apm                            grub.d           mime.types               rsyslog.conf
apparmor                       gshadow          mke2fs.conf              rsyslog.d
apparmor.d                     gshadow-         modprobe.d               screenrc
apport                         gss              modules                  securetty
apt                            hdparm.conf      modules-load.d           security
at.deny                        host.conf        mtab                     selinux
bash.bashrc                    hostname         mysql                    services
bash_completion                hosts            nanorc                   shadow
bash_completion.d              hosts.allow      netplan                  shadow-
bindresvport.blacklist         hosts.deny       network                  shells
binfmt.d                       init             networkd-dispatcher      skel
byobu                          init.d           networks                 sos.conf
ca-certificates                initramfs-tools  newt                     ssh
ca-certificates.conf           inputrc          nginx                    ssl
ca-certificates.conf.dpkg-old  iproute2         nsswitch.conf            subgid
calendar                       iscsi            opt                      subgid-
console-setup                  issue            os-release               subuid
cracklib                       issue.net        overlayroot.conf         subuid-
cron.d                         kernel           pam.conf                 sudoers
cron.daily                     kernel-img.conf  pam.d                    sudoers.d
cron.hourly                    landscape        pam.orig                 sysctl.conf
cron.monthly                   ldap             passwd                   sysctl.d
crontab                        ld.so.cache      passwd-                  systemd
cron.weekly                    ld.so.conf       perl                     terminfo
cryptsetup-initramfs           ld.so.conf.d     php                      timezone
crypttab                       legal            pm                       tmpfiles.d
dbus-1                         libaudit.conf    polkit-1                 ucf.conf
debconf.conf                   libnl-3          pollinate                udev
debian_version                 locale.alias     popularity-contest.conf  ufw
default                        locale.gen       profile                  updatedb.conf
deluser.conf                   localtime        profile.d                update-manager
depmod.d                       logcheck         protocols                update-motd.d
dhcp                           login.defs       python3                  update-notifier
dnsmasq.d                      logrotate.conf   python3.6                vim
dnsmasq.d-available            logrotate.d      rc0.d                    vmware-tools
dpkg                           lsb-release      rc1.d                    vtrgb
environment                    ltrace.conf      rc2.d                    wgetrc
ethertypes                     lvm              rc3.d                    X11
fonts                          machine-id       rc4.d                    xdg
fstab                          magic            rc5.d                    zsh_command_not_found
fuse.conf                      magic.mime       rc6.d
root@marcomtoday:~#

Mẹo: Nếu những dòng code dài trên terminal console khiến bạn bị bối rối, bạn có thể gõ lệnh clear + nhấn phím Enter để xóa hết chúng.

Tiếp theo, bạn sẽ tạo một Server Private Key bằng cách gõ lệnh sau và nhấn phím Enter:

Lưu ý: Thay marcomtoday.com bằng tên miền của bạn.

openssl genrsa -out /etc/ssl/private/marcomtoday.com.key 2048

Màn hình hiển thị:

root@marcomtoday:~# openssl genrsa -out /etc/ssl/private/marcomtoday.com.key 2048
Generating RSA private key, 2048 bit long modulus (2 primes)
..................+++++
.+++++
e is 65537 (0x010001)
root@marcomtoday:~#

Bây giờ, bạn sẽ tạo CSR Key (là một chuỗi mã hóa đặc biệt nhằm gửi đến nhà cung cấp để yêu cầu xác thực chứng chỉ SSL cho tên miền của bạn) bằng cách gõ lệnh sau và nhấn phím Enter:

Lưu ý: Thay marcomtoday.com bằng tên miền của bạn.

openssl req -new -key /etc/ssl/private/marcomtoday.com.key -out /etc/ssl/csr/marcomtoday.com.csr

Màn hình hiển thị:

root@marcomtoday:~# openssl req -new -key /etc/ssl/private/marcomtoday.com.key -out /etc/ssl/csr/marcomtoday.com.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) [AU]:

Sau đó, bạn nhập các thông tin:

Lưu ý: Bạn cần gõ không dấu.

  • Country Name: Mã quốc gia. Ví dụ: VN
  • State or Province Name: Tên tỉnh/thành phố. Ví dụ: Hanoi
  • Locality Name: Tên thành phố. Ví dụ: Hanoi
  • Organization Name: Tên tổ chức. Ví dụ: MarCom Today Blog
  • Organizational Unit Name: Lĩnh vực hoạt động. Ví dụ: Marketing
  • Common Name: Tên miền cần chứng thực, không chứa www. Ví dụ: marcomtoday.com
  • Email Address: Địa chỉ email mà bạn dùng để xác thực đăng ký.
  • A challenge password: Bạn bỏ qua và nhấn phím Enter.
  • An optional company name: Bạn bỏ qua và nhấn phím Enter.

Màn hình hiển thị:

root@marcomtoday:~# openssl req -new -key /etc/ssl/private/marcomtoday.com.key -out /etc/ssl/csr/marcomtoday.com.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) [AU]:VN
State or Province Name (full name) [Some-State]:Hanoi
Locality Name (eg, city) []:Hanoi
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MarCom Today Blog
Organizational Unit Name (eg, section) []:Marketing
Common Name (e.g. server FQDN or YOUR name) []:marcomtoday.com
Email Address []:quanpham1304@gmail.com

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

Tiếp theo, bạn cần đọc tệp .csr để nhận về 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 tên miền mà bạn cần thiết lập.

Bạn gõ lệnh sau vào terminal console và nhấn phím Enter:

Lưu ý: Thay marcomtoday.com bằng tên miền của bạn.

cat /etc/ssl/csr/marcomtoday.com.csr

Màn hình hiển thị:

root@marcomtoday:~# cat /etc/ssl/csr/marcomtoday.com.csr
-----BEGIN CERTIFICATE REQUEST-----
MIIC5DCCAcwCAQAwgZ4xCzAJBgNVBAYTAlZOMQ4wDAYDVQQIDAVIYW5vaTEOMAwG
A1UEBwwFSGFub2kxGjAYBgNVBAoMEU1hckNvbSBUb2RheSBCbG9nMRIwEAYDVQQL
DAlNYXJrZXRpbmcxGDAWBgNVBAMMD21hcmNvbXRvZGF5LmNvbTElMCMGCSqGSIb3
DQEJARYWcXVhbnBoYW0xMzA0QGdtYWlsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAKmxlBGnLjo9lEKgn1WdJXdIkcAE6iRxWFJyCSZiZeiG8+Be
5UbTUNTOn3qSmNDQvN+PkVGOiyuGSwtcZLRiId6QmRjv/yOZv/s12Eoz8BfQQCBh
tLpFBXPlu0OPXdT05DAI3r1nquPM2eid3zG2trM4xtLaLdMj5EE/AgNdMDBj+moD
kL3v6ULnoYo+2WxeqgJCmyGlMgoI15yVBJlHWuasUin5XIvxfcvPSP2MsPE31Gxe
SVIxq5N+RbLWWaMH3vegKp8IPBPLwjbdtMEPX2r+xAlco2YbGrIcqgVM94oNI81D
heouZ2Aqz5sEl8MezCfegWYUAwnzrbwjXqg9eX0CAwEAAaAAMA0GCSqGSIb3DQEB
CwUAA4IBAQB4zvK6OVHISyhdvpi3p7w6/MZeSLP6ZqlClek+iC319d9a4uuyMgur
MXjdPVFKSHyZ6Vru9fv2BQfIdzPQy6nTsy3OTljqz6azv4TDI/IQUtg3xYqYOCII
Veing/zq438Pg3XTdIRaUPeqCa8CKSOZ3U5KUugphncRUzzewsHR0Btlbdh/rkao
DspQN4h6BZ0qfHMjAx8YttzrMa2nyZ5EICPwgqTdPnFElRLcnDA4ikt73FLSI1cE
jK1oNpNRJf1sD9vmS/qETHBRzLBt2BVRYfKB1CAPbkzq4cS9wjH9BJ1VSC+RH07a
8vHmxU+6b8Xc3b68KhBZyVXDZ1YG44ud
-----END CERTIFICATE REQUEST-----
root@marcomtoday:~#

Bây giờ, bạn chuyển qua giao diện trang web Namecheap và nhấp vào nút “Activate” (Kích hoạt):

Activate chứng chỉ SSL mới mua trên Namecheap

Bạn sẽ được chuyển đến trang xác thực chứng chỉ SSL.

Tiếp theo, bạn sao chép nội dung chuỗi mã hóa bên giao diện terminal console (từ dòng -----BEGIN CERTIFICATE REQUEST----- đến dòng -----END CERTIFICATE REQUEST-----) và dán vào ô “Enter CSR”:

Lưu ý: Mỗi tên miền sẽ có một CSR riêng biệt và chỉ dùng một lần duy nhất nên bạn không sao chép chuỗi mã hóa mà tôi đề cập (trong màn hình hiển thị của tôi) ở phía trên vì nó sẽ không hoạt động.

Sau khi bạn dán vào, Namecheap sẽ tự động nhận tên miền mà bạn vừa thiết lập cho chứng chỉ.

Bạn nhấp vào nút “Next” để qua bước tiếp theo:

Xác nhận tên miền mà bạn vừa thiết lập cho chứng chỉ

Bạn chọn SSL sẽ được cấp trên máy chủ Nginx và nhấp vào nút “Next” để qua bước tiếp theo:

SSL sẽ được cấp trên máy chủ Nginx

Bước tiếp theo, bạn sẽ cần xác nhận tên miền này thuộc sở hữu của bạn.

Theo mặc định, hệ thống sẽ hiển thị phương pháp xác thực bằng email:

Xác thực tên miền bằng email

Tuy nhiên, nếu trong các email mà hệ thống đề xuất, bạn không thể tuy cập vào email nào thì bạn có thể chọn phương thức xác thực khác. Tôi thường chọn xác thực tên miền bằng DNS:

Xác thực tên miền bằng DNS

Tiếp theo, bạn điền email mà bạn muốn Namecheap sẽ gửi tệp SSL đến và nhấp vào nút “Next”:

Điền email Namecheap gửi-tệp SSL đến

Bây giờ, bạn sẽ kiểm tra thông tin SSL và nhấp vào nút “Submit”:

Kiểm tra thông tin SSL

Sau đó, bạn được chuyển đến trang quản lý chứng chỉ SSL cho tên miền của bạn.

Vì bạn chọn xác thực tên miền bằng DNS nhưng chưa cập nhật CNAME vào trong phần quản lý DNS của tên miền nên chứng chỉ SSL được thiết lập cho tên miền sẽ ở trạng thái là “Pending”.

Trang quản lý chứng chỉ SSL cho tên miền

Nhấp vào dòng chữ “get CNAME record here”, bạn sẽ được chuyển đến trang thông tin chi tiết.

Tiếp theo, bạn tiến hành nhận bản ghi CNAME bằng cách nhấp vào ô mũi tên trỏ xuống và chọn “Get Record”:

Nhận bản ghi CNAME

Một cửa sổ bật lên hiện ra:

Nhận bản ghi để xác thực kiểm soát miền

Bây giờ, bạn truy cập vào trang web bạn đã mua tên miền và đến phần quản lý DNS. Trong ví dụ này, tôi mua tên miền tại Mắt Bão.

Bạn thêm bản ghi CNAME như sau và nhấp vào nút “Thêm bản ghi”:

  • Loại: Chọn CNAME (Alias)
  • Host: Sao chép dòng “Host” tương ứng ở bên Namecheap rồi dán vào, bỏ phần tên miền phía sau.

Ví dụ: _8E589FB5B778EC0AFAE42C2F8FE03180

  • TTL: Bạn để mặc định TTL.
  • Giá trị: Sao chép dòng “Target” tương ứng ở bên Namecheap rồi dán vào.

Ví dụ: 47673A56F6C6BF8D316719353665799D.432E4656A2C90730D25559458BCD68A6.5fe8f4cee381c.comodoca.com

Màn hình của tôi:

Thêm bản ghi CNAME vào Quản lý DNS

Sau đó, bạn đợi khoảng 5 đến 10 phút, nhà phát hành sẽ gửi chứng chỉ SSL cho bạn thông qua email:

Email cấp chứng chỉ SSL

Tiếp theo, bạn nhấp vào email có tiêu đề “Your PositiveSSL Certificate for …” và tải xuống tệp đính kèm.

Khi giải nén tệp đính kèm ra, bạn sẽ thấy hai tệp (một tệp đuôi .crt, một tệp đuôi .ca-bundle). Tệp có đuôi .crt chính là chứng chỉ SSL được cấp cho tên miền của bạn.

Tệp chứng chỉ SSL đính kèm

Bây giờ, bạn sẽ tải hai tệp này lên máy chủ của bạn bằng cách kéo tệp từ trái qua phải trong cửa sổ SFTP:

Lưu ý: Thư mục chứa chứng chỉ SSL trong cửa sổ SFTP là /etc/ssl

Tải chứng chỉ SSL lên máy chủ

Tiếp theo, bạn sẽ tiến hành cấu hình Nginx bằng cách truy cập vào đường dẫn /etc/nginx/sites-available trên cửa sổ SFTP.

Bạn chọn “Edit” để sửa tệp cấu hình:

Chọn Edit để sửa tệp cấu hình

Đầu tiên, bạn thay listen 80 thành listen 443, cụ thể:

Trước:

server {
        listen 80;

Sau:

server {		
	listen 443 ssl http2;
	listen [::]:443 ssl http2;

Tiếp theo, chèn thêm vào dưới nó đoạn mã sau:

Lưu ý: Thay marcomtoday_com bằng thông tin tệp chứng chỉ của bạn, marcomtoday.com bằng tên miền của bạn.

# SSL
ssl on;
ssl_certificate /etc/ssl/marcomtoday_com.crt;
ssl_certificate_key /etc/ssl/private/marcomtoday.com.key;
ssl_session_timeout 1d;
ssl_session_cache  shared:SSL:50m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;

Sau đó, bạn chèn thêm đoạn mã này vào đầu tệp:

Lưu ý: Thay marcomtoday.com bằng tên miền của bạn.

server {
        listen   80;
	listen [::]:80;
        server_name marcomtoday.com www.marcomtoday.com;
	return 301 https://$server_name$request_uri;
}

Sau khi chèn xong tất cả, tệp cấu hình của bạn sẽ trông như:

server {
        listen   80;
	listen [::]:80;
        server_name marcomtoday.com www.marcomtoday.com;
	return 301 https://$server_name$request_uri;
}

server {		
	listen 443 ssl http2;
	listen [::]:443 ssl http2;
		
	# SSL
	ssl on;
	ssl_certificate /etc/ssl/marcomtoday_com.crt;
	ssl_certificate_key /etc/ssl/private/marcomtoday.com.key;
	ssl_session_timeout 1d;
	ssl_session_cache  shared:SSL:50m;
	ssl_session_tickets off;
	ssl_protocols TLSv1.2 TLSv1.3;
	ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
	ssl_prefer_server_ciphers on;
	add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
	ssl_stapling_verify on;
	resolver 8.8.8.8 8.8.4.4 valid=300s;
	resolver_timeout 5s;
		
        root /var/www/html/marcomtoday.com;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name marcomtoday.com www.marcomtoday.com;

        location / {
               #try_files $uri $uri/ =404;
                try_files $uri $uri/ /index.php$is_args$args;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        }

        location ~ /\.ht {
                deny all;
        }

        location = /favicon.ico { log_not_found off; access_log off; }
        location = /robots.txt { log_not_found off; access_log off; allow all; }
        location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
            expires max;
            log_not_found off;
        }

}

Khi bạn chỉnh sửa xong, bạn có thể lưu và đóng tệp.

Sau đó, hãy tải lại Nginx để áp dụng các thay đổi bằng cách nhập lệnh sau vào terminal console:

service nginx restart

Tiếp theo, bạn truy cập vào đường dẫn /var/www/html/marcomtoday.com trên cửa sổ SFTP rồi chèn thêm đoạn sau vào tệp wp-config.php:

Lưu ý: Thay marcomtoday.com bằng tên miền của bạn.

define('WP_HOME','https://marcomtoday.com');
define('WP_SITEURL','https://marcomtoday.com');

Bây giờ, bạn truy cập vào trang web của mình trên trình duyệt, bạn sẽ thấy ổ khóa bảo mật đã được kích hoạt.

Cài đặt chứng chỉ SSL thành công trên Nginx

Như vậy, bạn đã cài đặt thành công chứng chỉ SSL cho trang web của mình trên máy chủ Nginx.

Ngoài ra, bạn có thể cài đặt plugin Really Simple SSL để giao thức HTTPS cũng chứng chỉ SSL hoạt động ổn định và hiệu quả hơn trên website của bạn.

Kết luận

HTTPS đang trở nên quan trọng hơn bao giờ hết đối với một trang web. Nó giúp tăng bảo mật, cải thiện tốc độ và tối ưu hóa công cụ tìm kiếm.

Bạn hoàn toàn có thể sử dụng một chứng chỉ SSL miễn phí từ Let’s Encrypt.

Tuy nhiên, với các tính năng và ưu điểm cùng mức giá hợp túi tiền, PositiveSSL tại Namecheap là lựa chọn tốt hơn mà bạn nên sử dụng.

Nếu bạn là người mới, tôi hi vọng phần đánh giá và hướng dẫn cài đặt chứng chỉ SSL trên máy chủ Nginx trong bài đăng sẽ giúp bạn tiết kiệm được một khoảng thời gian đáng kể.

Nếu có bất cứ câu hỏi nào về việc sử dụng giao thức HTTPS và cài đặt chứng chỉ SSL, hãy cho tôi biết bằng cách bình luận xuống phía dưới!

Viết một bình luận