Cài đặt Comodo SSL lên VPS đã cài Lets Encrypt

16292

Hiện tại bạn đang sử dụng SSL miễn phí Let’s Encrypt cho trang web của mình, tuy nhiên để chuyên nghiệp hơn bạn chuyển sang dùng SSL Comodo hoặc GogetSSL có phí. Vậy làm như thế nào để chuyển đổi 2 SSL này mà không ảnh hưởng đến website. Cài đặt Comodo SSL lên VPS đã cài Lets Encrypt

1. Chuẩn bị sẵn SSL cần thay đổi (Đăng ký mua Comodo hoặc Namecheap)

+ Hiện tại, từ 01/03/2018 SSL chỉ cho đăng ký tối đa 2 năm chứ không phải 3 năm như trước đây.
+ Bạn có thể đăng ký mua SSL Comodo (12,75$/2 năm) hoặc GogetSSL (8,60$/2 năm) hoặc ở SSLS (~6$/2năm) Đây là giá rẻ nhất với thời gian hiện tại.
+ Hoặc bạn có thể đặt mua SSL của Namecheap. Giá của Namecheap cao hơn GogetSSL và SSLS một chút. Nếu bạn mua 1 năm: 8,88$/năm, bạn mua 2 năm: 7,88$/năm.
Đây là 2 NCC SSL uy tín chất lượng mà tớ đã sử dụng qua thấy OK nên giới thiệu với các bạn tham khảo.

2. Cài đặt Comodo SSL lên VPS đã cài Let’s Encrypt

+ Mình sẽ hướng dẫn Cài đặt Comodo SSL lên VPS đã cài Let’s Encrypt, với VPS đã cài đặt HocVPS của bác Luân Trần. Bạn có thể tham khảo cách cài đặt HocVPS ở đây.
+ Mình minh họa bằng SSL đặt mua ở GogetSSL, bạn mua ở chỗ khác thì cũng tương tự như vậy nhé.
+ Các bước như đặt mua, thanh toán,… mình không hướng dẫn lại nhé.

2.1 Chuẩn bị file Private Key và CSR file

Sau khi đặt mua thành công SSL ở GogetSSL, sẽ nhận được email yêu cầu cung cấp CSR file cho hệ thống của GogetSSL xác nhận chứng chỉ SSL và Private Key sử dụng để bạn cung cấp cho VPS của bạn đang sử dụng.
Bạn có thể tạo Private Key và CSR file theo 1 trong 2 cách sau
+ Sử dụng công cụ Tạo CSR Online của Học VPS. Nên sử dụng cái này cho nhanh.
+ Hoặc bạn sử dụng lệnh openssl trên server Linux VPS của bạn

openssl req -new -newkey rsa:2048 -nodes -keyout example_com.key -out example_com.csr

Sau khi tạo Private Key và CSR file bạn sẽ nhận được 2 file
+ example_com.key: Private Key cài trên server của mình.
+ example_com.csr: file CSR để gửi cho nhà cung cấp dịch vụ SSL.
Bước tiếp theo bạn đăng nhập vào tài khoản mua ở GogetSSL → Manage SSL Certificates để vào phần quản lý My SSL Certificates
Cài đặt Comodo SSL lên VPS đã cài Let's EncryptBạn click vào mục Generate, bạn giữ nguyên mặc định các mục
Cài đặt Comodo SSL lên VPS đã cài Lets Encryptvà copy đoạn mã của CSR file dán vào khung màu đỏ để Server SSL xác nhận thông tin.
Cài đặt Comodo SSL lên VPS đã cài Lets EncryptChọn vào nút Validate CSR để chuyển sang trang lựa chọn email chính
Cài đặt Comodo SSL lên VPS đã cài Lets EncryptChọn chính xác email và email đó phải tồn tại. Ở đây hệ thống đưa ra các email gợi ý tuy nhiên bạn phải chọn chính xác email mà mình đang dùng nhé. Chọn Next Step để tiếp tục trang cập nhật thông tin người quản trị SSL
Bạn nhập thông tin quản trị vào các ô tương ứng
Sau đó chọn vào Complete Generation. Nếu mọi việc tốt đẹp bạn sẽ nhận được thông báo Hoàn thành như hình bên dưới
Cài đặt Comodo SSL lên VPS đã cài Lets EncryptBạn kiểm tra email đã đăng ký ở trên, sẽ nhận được email có link và Validation code để xác nhận lại lần nữa trước khi Server SSL gửi file đính kèm, có dạng như hình bên dưới
Đến đây coi như đã hoàn thành được 50% rồi đó. Các bạn làm tiếp theo các bước bên dưới nhé.

2.2 Tạo file Bundle

Sau khi đặt mua thành công, bạn nhận được email có dạng như sau: ORDER #128389453 – Your GGSSL Domain SSL for canhchung.com và kèm theo file canhchung_com.zip. Trong file zip này sẽ có 2 trường hợp sau:
1. Trong file .ZIP đính kèm 2 file
+ canhchung_com.crt
+ canhchung_com.ca-bundle
Bạn dùng bất kỳ trình soạn thảo text editor nào đó, tạo file mới ssl-bundle.crt chứa nội dung của 2 file, thứ tự lần lượt: canhchung_com.crt → canhchung_com.ca-bundle
2. Trong file .ZIP đính kèm 3 file
   + canhchung_com.crt

   + COMODO_RSA_Certification_Authority.crt
   + AddTrust_External_CA_Root.crt
Bạn dùng bất kỳ trình soạn thảo text editor nào đó, tạo file mới ssl-bundle.crt chứa nội dung của 3 file, thứ tự lần lượt:
canhchung_com.crt → COMODO_RSA_Certification_Authority.crt → AddTrust_External_CA_Root.crt
Hoặc bạn chạy câu lệnh sau

cat canhchung_com.crt COMODO_RSA_Certification_Authority.crt AddTrust_External_CA_Root.crt > ssl-bundle.crt

3. Cài đặt SSL mới thay thế cho Let’s Encrypt

Ở bước này, mình tham khảo và làm theo bài viết của bác Luân Trần admin của HocVPS. Chỉ có thay đổi vài chỗ cho phù hợp domain của mình. Các bạn tham khảo bài viết cũng phải điều chỉnh domain của bạn cho phù hợp nhé.
Bạn đăng nhập vào VPS của bạn với quyền root bằng chương trình PuTTY, ZOC Terminal,… chương trình nào bạn thấy dễ thao tác nhất là được. Ở đây, mình sử dụng ZOC Terminal

3.1 Tạo thư mục chứa file chứng chỉ

mkdir -p /etc/nginx/ssl/canhchung_com/

Sử dụng nano lưu nội dung file chứng chỉ ssl-bundle.crt ở thư mục này

nano /etc/nginx/ssl/canhchung_com/ssl-bundle.crt

bạn copy toàn bộ nội dung file ssl-bundle.crt đã tạo ở trên paste vào đây. Sau đó, bấm Ctrl O để lưu lại.
– Lưu nội dung Private Key chung thư mục

nano /etc/nginx/ssl/canhchung_com/private.key

Bạn copy toàn bộ nội dung trong file Private Key paste vào đây, bấm Ctrl O để lưu lại.

3.2. Tạo file DH parameters

Tạo file DH parameters 2048 bit, quá trình generate sẽ hơi lâu (tạo một lần duy nhất cho 1 VPS)

openssl dhparam 2048 -out /etc/nginx/ssl/dhparam.pem

3.2. Điều chỉnh lại file cấu hình Nginx

Tiếp theo, chúng ta sẽ điều chỉnh lại file cấu hình Nginx. Ví dụ tên miền của mình là canhchung.com thì file cấu hình sẽ có đường dẫn là /etc/nginx/conf.d/canhchung.com.conf
Chỉnh sửa cấu hình Nginx domain bằng Nano Editor với dòng lệnh bên dưới

nano /etc/nginx/conf.d/canhchung.com.conf

Vì trước đó bạn đã cài đặt Let’s Encrypt lên VPS rồi nên bây giờ bạn chỉ cần chỉnh sửa lại một chút là xong.
Chú ý: Nếu bạn cấu hình SSL cho domain không phải domain chính trong HocVPS, block server chứa root web root /home/canhchung.com/public_html; sẽ không có tham số default_server;. Đồng thời, không cấu hình HocVPS Admin.
– Bạn xóa block server {…} cũ trên cùng đi và thay thế bằng đoạn block bên dưới vào

server {
listen 443 ssl;
server_name www.canhchung.com;
# SSL

ssl_certificate /etc/nginx/ssl/canhchung_com/ssl-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/canhchung_com/private.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
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’;
rewrite ^(.*) https://canhchung.com$1 permanent;
}

Những vị trí đánh dấu đỏ bạn thay bằng domain của bạn vào nhé
Trong block server { … } thứ 2 bạn điều chỉnh như sau:
+ Chuyển listen 80 default_server; thành listen 443 ssl default_server;
(Nếu không phải domain chính sẽ không có chữ default_server nhé)

+ Sau dòng server_name canhchung.com; thêm đoạn cấu hình SSL đã được bác Luân tối ưu:

# SSL
ssl_certificate /etc/nginx/ssl/canhchung_com/ssl-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/canhchung_com/private.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
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’;# Improve HTTPS performance with session resumption
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d; # DH parameters
ssl_dhparam /etc/nginx/ssl/dhparam.pem;# Enable HSTS
add_header Strict-Transport-Security “max-age=31536000” always;

Bấm Ctrl O để lưu lại. Ctrl X thoát nano. Như vậy là xong.
Bây giờ, Bạn kiểm tra lại cấu hình Nginx xem đã chuẩn chưa bằng dòng lệnh sau

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nếu kết quả trả về như trên thì bạn đã thành công.
Bạn tiến hành Reload lại Nginx : service nginx reload
Nếu báo lỗi, thường thì bạn quên thay domain của bạn vào. Kiểm tra lại nhé.
Về cơ bản Cài đặt Comodo SSL lên VPS đã cài Lets Encrypt là như vậy.

4. Renew SSL khi sắp hết hạn

Để renew SSL cho website của bạn, thường thì trong vòng 1 tháng trước khi hết hạn bạn renew SSL là được. Các bước renew cũng đơn giản như sau:
4.1 Đặt mua lại SSL với chức năng renew thì bạn mới được cộng dồn số ngày hiện tại.
4.2 Sử dụng nội dung file CSR cũ để mua. Bạn có thể lên trang bạn đã mua tải về lại.
4.3 Sau khi đã mua mới bạn chỉ cần thực hiện các bước sau:
  – Giữ nguyên tất cả hiện trạng đã cài đặt
  – Không cần tắt nigx
  – Chạy lệnh: nano /etc/nginx/ssl/tên miền của bạn_com/ssl-bundle.crt
    ví dụ của mình: nano /etc/nginx/ssl/chiasesuutam_com/ssl-bundle.crt
  – Xóa hết nội dung ssl-bundle.crt cũ đi, copy nội dung file ssl-bundle.crt mới mua vào
  – Bấm Ctrl O để lưu lại. Bấm Ctrl X để thoát nano
  – Kiểm tra bằng lệnh: # nginx -t
    Xuất hiện như bên dưới là OK
              nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
              nginx: configuration file /etc/nginx/nginx.conf test is successful
  – Reload nigx bằng lệnh: service nginx reload
  – Xong.

Các bạn tham khảo nếu có vấn đề gì thì comment bên dưới nhé.

Chúc các bạn thành công !
Cám ơn bạn đã đọc bài viết của mình !

Đánh giá bài viết của bạn là động lực cho mình đăng thêm bài chất lượng. Cám ơn!
[Tổng số đánh giá: 7 . Điểm trung bình: 5 sao]

0 0 vote
Article Rating
guest
0 Comments
Inline Feedbacks
View all comments