Bài viết đã cũ. Các bạn tham khảo hướng dẫn mới nhất từ HocVPS cài đặt SSL từ các nhà cung cấp cụ thể:
Hướng dẫn cài đặt chứng chỉ miễn phí Let’s Encrypt
Hướng dẫn cài đặt chứng chỉ SSL (áp dụng Comodo/Godaddy…)

Trong các bài viết trước, các bạn có thể tự tạo SSL Certificate cho riêng mình. Tuy nhiên, khi truy cập sẽ gặp thông báo Warning. Để không gặp phải thông báo này, bạn cần cài đặt SSL Certificate của bên thứ 3 như Comodo/DigiCert/Verisign.

Khi đăng ký xong chứng chỉ SSL Certificate bạn sẽ có tất cả 3 thông tin bao gồm:

  1. CSR Code
  2. Khóa riêng (SSL Private Key)
  3. SSL Certificate

Điều cần làm bây giờ là thay thế nội dung của các file tương ứng server.csr, server.key và server.crt theo như 3 thông tin trên. Chú ý nội dung của các file tương tự như bên dưới:

server.csr

-----BEGIN CERTIFICATE REQUEST-----
MIIC2DCCAcACAQAwgZIxCzAJBgNVBAYTAlZOMQ8wDQYDVQQIDAZIYSBOb2kxDzAN
BgNVBAcMBkhhIE5vaTEXMBUGA1UECgwOQ2hpYSBTZSBDb3Vwb24xDjAMBgNVBAsM
BUFkbWluMRQwEgYDVQQDDAtuZ29uY2FpLmNvbTEiMCAGCSqGSIb3DQEJARYTdHJ1
bmdsdWFuQGdtYWlsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB....
-----END CERTIFICATE REQUEST-----

server.key

-----BEGIN PRIVATE KEY-----
MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDi54Gtj9rcu/ga
+vFGIqZgykAddl6jOi3gZ7Tvyy4b8Jxn5AcdvyD14hJixROQbztNg4LnHc8tNzi8
uFu+u5nUGMy1RJ3L9haW1G9qDRszjYjHKXSEpKs4klZ9rP2nRt4JE/WWdszYuUiF
FCOy2qDZZE+9fEjcaLwlybwZ7SfC7TicPo0EbU3g0W+NRWQzOVxFs3Vglgu1t+xx....
-----END PRIVATE KEY-----

server.crt

-----BEGIN CERTIFICATE-----
MIIFCjCCA/KgAwIBAgIRAO4sc0PE2EtZQieg4DqMSxowDQYJKoZIhvcNAQEFBQAw
cjELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxGDAWBgNV
BAMTD0Vzc2VudGlhbFNTTCBDQTAeFw0xNDAxMjIwMDAwMDBaFw0xNDA0MjIyMzU5
NTlaMEwxITAfBgNVBAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRlZDERMA8GA1UE....
-----END CERTIFICATE-----

Khởi động lại server và truy cập vào https://youraddress bạn sẽ thấy thông tin SSL đã được verify:

ssl verified

Comment của bạn

Lưu ý: tất cả comment đều được kiểm duyệt cẩn thận! Nếu có code bạn hãy up lên pastebin.com rồi để lại link trong comment.

50 Comments

  1. thuansky 1 comment

    Các bạn cho mình hỏi, mình có mua ssl của namecheap, code thì cài trên vultr, hiện tại đã cài xong trên namecheap, nhưng mình lại không biết cài trên vultr, họ có chỉ làm theo cách này : https://www.namecheap.com/support/knowledgebase/article.aspx/9419/33/installing-an-ssl-certificate-on-nginx, nhưng mình lại không rành về server và câu lệnh, thế nên đến mục 3 là dừng lại, không biết làm sao. Có bạn nào rành cái này chỉ mình với, cảm ơn ạ

  2. Lý Thành Phúc 46 comment

    Anh Luân hướng dẫn cách cài ssl của free Cloudflare với HocVPS đi ạ

    1. Việt Phương Moderator

      Mình nghĩ Cloudfare thì tự tích hợp trên CF là được, có cần thiết lập trong VPS đâu nhỉ? Còn hàng free trên VPS có Let’s Encrypt mình thấy OK rồi, không cần thiết CF làm gì

      1. Lý Thành Phúc 46 comment

        Mình dùng cdn của cloudflare nên ko dùng đc ssl của nơi khác, bật cái ssl của cloudflare lên là đã dùng đc rồi nhưng mình thắc mắc là chả lẽ ko cần điền cái CERTIFICATE hay gì à ?

    2. Hùng Đặng 5 comment

      Thực ra thì với hocvps khi bạn tạo domain nó không tự tích hợp SSL.
      Bạn vào CF và làm theo như bên dưới:

      1. Crypto -> SSL : chọn Full (strict) để nó chạy cả CDN cho SSL
      2. Origin Certificates -> Create Certificate, sau đó nó sẽ hiển thị cho bạn Private key và Certificate, copy Certificate vào file domain.pem và Private key vào fiel domain.key, lưu 2 file này ở đâu bạn muốn, bạn có thể lưu ở : /home/domain.com/keys/
      3. Mở conf của domain tại : /etc/nginx/conf.d/domain.conf và thêm các dòng sau vào phía dưới listen 80; :

      listen 443;

      ssl on;
      ssl_certificate /home/domain.com/keys/domain.pem;
      ssl_certificate_key /home/domain.com/keys/domain.key;

      4. Lưu file lại và khởi động lại nginx bằng lệnh:
      Đối với Centos 5,6: service nginx restart
      Đối với Centos 7 : systemctl restart nginx

      Chạy https://domain để kiểm tra. Sẽ có một số trường hợp nginx báo lỗi không đọc pem, bạn nhớ kiểm tra key cho kỹ nhé, copy tất cả các dòng nó hiển thị tại CF. Comment này ko đưa ảnh vào được nên mình ko chụp cho bạn xem được.

  3. Mai Nam 11 comment

    Hình như nó chỉ backup hệ điều hành thôi còn sql hay code hay file thì phải tự mình thì phải…vậy mệt nhỉ ?

  4. Mai Nam 11 comment

    Hi các bạn.
    Mình cài ssl trên vultr chạy nginx nhưng sao vào admin thì mới hiện https màu xanh ,còn ngoài trang chủ thì chỉ hiện https màu trắng chứ ko phải xanh ?hix

    1. Luân Trần Admin

      Domain của bạn là gì nhỉ? Thường do trang chủ vẫn sử dụng link http (file image, css, js) nên mới không có https màu xanh.

      1. Mai Nam 11 comment

        Chuẩn rồi …Mình đã sửa đc.
        Cho mình hỏi thêm là bữa đki mới theo ref bạn .nhưng chỉ dùng vps 5$.mà 50$ dùng cho 2 tháng thấy phí nên muốn lên plan cao hơn.
        Nhưng vultr ko cho downage nên sau này ko biết làm tnao…
        Có cách nào lên cho đã dùng cho hết 50$ rồi sau này tạo gói 5$ rồi backup lại dễ ko bạn nhỉ ?

        1. Luân Trần Admin

          Sau này tạo VPS mới thì bạn backup lại site rồi up lại thôi.
          Vultr cho phép lưu lại snapshot và tạo VPS theo snapshot nhưng phải tự chỉnh lại một số thứ khá lằng nhằng nên mình khôn khuyến khích làm.

  5. Hưng 4 comment

    Bạn cho mình hỏi là làm sao cài nhiều SSL trên cùng 1 IP trên nginx được nhỉ, như kiểu SNI trên DA ấy.

  6. bui 1 comment

    cho mình hỏi khi đổi server hoắc VPS nhưng thông tin này chuyển sang server mới có sử dụng được tiếp không hay phải liện hệ bên bán SSL để xin lại thông tin mới.

    Thanks

  7. Văn Tiến 8 comment

    Bác Luân ơi, bác có thể làm bài hướng dẫn cài ssl cho centos cài zpanel được không? em làm mãi mà không được.

  8. Phúc 5 comment

    Mình gặp 1 tình trạng. Codomo nó gởi cho mình 1 file zip với 4 file
    1. AddTrustExternalCARoot.crt
    2. COMODORSAAddTrustCA.crt
    3. COMODORSADomainValidationSecureServerCA.crt
    4. shopshop_vn.crt

    Mở mấy file trong Nginx ra không biết thay thế nào 🙁

  9. Phúc Đỗ Trần Quang 5 comment

    mình có 1 ssl bên Neamcheap. Nhưng giờ không biết tích hợp sao vàp Nginx hết, đã làm xong bước 1. Không biết làm sao để Neamcheap nó gởi cho mình file chứng thực ssl. Mong Luân hướng dẫn nha

  10. dragon 1 comment

    Chào tất cả mọi người!
    Có thể không đúng chủ đề nhưng tôi có câu hỏi muốn được giúp đỡ!
    Tôi cài squid trên CentOS,nếu ở máy client mà thiết lập trình duyệt Connections Internet bằng proxy (mặc định tất cả bao gồm cả secure là port 3128) thì truy cập http và https đều OK. Nhưng nếu dùng iptables để Redirect to 3129 (không phải thiết lập trên các máy client) thì không thể truy cập https (443). Trình duyệt thông báo lỗi: There is a problem with this website’ s security certificate.
    Trong file squid.conf đã thêm dòng: https_port 3129 cert=*.crt key=*.key (hai file này tự tạo).
    Ai biết lỗi này xin chỉ dùm!

  11. Neo 4 comment

    Có 2 điều:
    1. Đã làm được theo lời Luân chỉ, tức mở file .conf của domain vd yourdomain.com.conf lên , copy các lệnh trong block server { listen 80; về php và rewrite, pagespeed … vào ssl.conf.
    Sau đó restart thì lên, có điều:
    2. Bên mình vẫn lỗi màu đỏ và báo chứng chỉ không đáng tin cậy, dù vào xem thông tin chứng chỉ thì Issued to và Issued by đều đúng yourdomain.com và còn thời gian. Vụ SSL này phải làm sao đây Luân giúp với

    1. solomen 5 comment

      Mình đã làm thành công rồi. Win Love vào etc/nginx/conf.d rồi mở file .conf của domain vd yourdomain.com.conf lên , copy các lệnh trong block server từ các dòng sau { listen 80; về vào file ssl.conf.
      Sau đó restart là OKE.
      Thanks Neo và Luân nhá

      1. solomen 5 comment

        Bổ sung:
        Trong file ssl.conf:

        server {
        listen 443;
        ssl on;
        ssl_certificate /etc/nginx/ssl/domain.pem;
        ssl_certificate_key /etc/nginx/ssl/server.key;

        Copy vào đây…………………
        }

  12. solomen 5 comment

    cái này mình đã xác nhận thành công rồi, giờ chạy https://domain thì nó hiện hiện màu xanh trên chrome, nhưng nó lại vào Welcome Nginx:
    Welcome to nginx!
    If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

    Mà không vào hiện nội dụng site như http://domain

    Nói chung là tình hình giống bạn NEO.

    1. Wind Love 45 comment

      Mình k biết Nginx thế nào !
      NHưng Apche thì cũng bị lỗi y chang vậy ak !
      Bạn copy toàn bộ file ra thư mục gốc mới mà khi truy cập bằng https nó đẫn đến là đc ak !
      Để nguyên các file thư mục kia như cũ !
      Mình chỉ biết chữa lỗi bằng cách này thui !

    1. Luân Trần Admin

      Bạn mở từng file đó lên bằng text editor, xem đoạn đầu sẽ biết được nó tương ứng với file nào trong bài viết này.

      Mấy dòng kiểu như thế này nè:
      —–BEGIN CERTIFICATE REQUEST—–
      —–BEGIN PRIVATE KEY—–

      1. Phúc 5 comment

        Mình gặp 1 tình trạng. Codomo nó gởi cho mình 1 file zip với 4 file
        1. AddTrustExternalCARoot.crt
        2. COMODORSAAddTrustCA.crt
        3. COMODORSADomainValidationSecureServerCA.crt
        4. shopshop_vn.crt

        Mở mấy file trong Nginx ra không biết thay thế nào 🙁

  13. Neo 34 comment

    Mình dùng hocvps script, rồi Comodo positive SSL đều từ chỗ Luân.
    Giờ tạo CSR, rồi yêu cầu Comodo verify, xong rồi tải crt Comodo tạo từ CSR của mình, up CRT lên nginx/ssl
    Xong tạo file ssl.conf như vầy:
    server {
    listen 443;
    server_name mydomain.net;

    ssl on;
    ssl_certificate /etc/nginx/ssl/mydomain.crt;
    ssl_certificate_key /etc/nginx/ssl/mydomain.key;
    }
    Restart nginx
    Mở https://mydomain.net lên nó ra trang default Welcome to nginx, không phải website của mình ở /home/mydomain.net/public_html
    Mình thêm vào ssl.conf 2 dòng:
    root /home/mydomain.net/public_html;
    index index.php

    restart nginx
    Mở https://mydomain.net lên
    nó tự tải 1 file header ko có extension của wordpress lên, không vào được trang giống như http://mydomain.net
    😐
    Làm sao đây

    1. Luân Trần Admin

      Bạn hãy copy mấy dòng config cho PHP tương tự như block server { listen 80; thì lúc này script PHP mới chạy được

    2. solomen 5 comment

      Neo, bạn chạy được cấu hình https cho site bạn chưa, mình cũng thực hiện giống bạn nhưng vào https://domain thì nó hiên:

      Welcome to nginx!
      If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

      Đang bế tắt. 🙁

      1. Wind Love 45 comment

        Mình k biết Nginx thế nào !
        NHưng Apche thì cũng bị lỗi y chang vậy ak !
        Bạn copy toàn bộ file ra thư mục gốc mới mà khi truy cập bằng https nó đẫn đến là đc ak !
        Để nguyên các file thư mục kia như cũ !
        Mình chỉ biết chữa lỗi bằng cách này thui !

  14. Wind Love 45 comment

    Mình thử làm theo cái hướng dẫn của u về cách làm self-signed certificate mà chẳng đc gì cả !
    Nhất là phần chỉnh sửa file cấu hình ý !
    Lay hoay mãi k đc ! Tính hỏi hỗ trợ của DO thì kiếm đc cái hướng dẫn của bọn nó !
    Và làm đc lun !

  15. Wind Love 5 comment

    Bạn nào xài VPS của bọn Digital Ocean thì vô xem hướng dẫn ở phần hỗ trợ ý ! Chứ cái của Luân Trần đọc rất khó hiểu !
    Mặc dù nó là Tiếng Việt !

      1. Luân Trần Admin

        Hướng dẫn của DO là self-signed certificate còn đây là sử dụng certificate do mình tự mua nên nó khác và hơi lằng nhằng hơn

  16. long 2 comment

    quên nữa, em có cài cpanel ùi ạ. linux centos apache đã cài cpanel, em tạo được cái ssl ùi, nhưng mà màu đỏ, giờ muốn nó thành màu xanh mà ko biết làm sao. có xem file httpd.conf thấy đường dẫn nó trỏ tới file .crt và .key, có thay đổi giống anh nhưng thay đổi xong thì apache stop lun. phải đổi lại thì mới start được apache

    1. Wind Love 5 comment

      Nếu bạn mún chuyển sang màu xanh !
      Bạn phải dùng SSL của bên thứ 3 ! SSL tự kí ,mặc định sẽ bị trình duyệt chặn ! Nên có màu đỏ !
      Bạn nên xài SSL DO hoặc SSL EV thì sẽ k bị trình duyệt Chrom chặn !
      K nên xài SSL DV ! SSL này chỉ có thể truy cập bằng Fire Fox là k bị chặn thui !

  17. Nguyen Van Long 45 comment

    Thanks anh nha ! Anh có thể hướng dẫn tiếp cách dùng trên Hệ điều hành Ubutu k ?
    Mình k quen xài CentOS !
    E có đọc 1 vài hướng dẫn trên mạng về cách tạo SSL tự kí cho VPS Ubutu của DO nhưng k xài đc !
    Hi vọng đc a giúp !

  18. Nguyen Long 45 comment

    Cái này thì mình phải cài SSL Certificate cho riêng mình rùi mới cài của bên thứ 3 bằng cách thay các file
    server.csr
    server.key
    server.crt
    tương ứng với các file của SSL Certificate của riêng mình( Cài trc đó ) hả anh Luân !