Chứng chỉ SSL hiện nay được sử dụng quá phổ biến, hầu hết những website mới hay server mới đều lựa chọn kích hoạt SSL ngay từ ban đầu.
Quá trình cài đặt SSL trên server sẽ cần một số kiến thức kỹ thuật nhất định, trong bài viết này, mình sẽ hướng dẫn các bạn chi tiết cách cài đặt với 2 loại chứng chỉ phổ biến nhất cho tên miền là PositiveSSL từ Comodo và Standard SSL DV từ GoDaddy.
Cả 2 loại chứng chỉ này đều thuộc loại Domain Validation, được dùng rất phổ biến do chi phí rẻ, dễ dàng cài đặt, kích hoạt online không phải xác nhận giấy tờ thông tin gì.
Trong bài mình sẽ cài đặt SSL trên máy chủ Nginx cài đặt HocVPS Script, với các server LEMP khác thao tác cũng tương tự. Với Let’s Encrypt thì các bạn xem bài hướng dẫn này.
Nếu bạn chưa đăng ký chứng chỉ SSL, hãy tham khảo khuyến mại SSL trên blog Canh Me.
Nếu cài xong mà thanh địa chỉ chưa hiện HTTPS màu xanh, hãy tham khảo bài Hướng dẫn cài đặt SSL “xanh hoàn hảo”
Nếu không nắm vững kiến thức kỹ thuật, hãy liên hệ sử dụng Dịch vụ Cài đặt SSL từ Học VPS.
Nội dung bài viết
1. Kích hoạt chứng chỉ
Sau khi đăng ký SSL, bạn cần phải tiến hành kích hoạt thì mới nhận được file chứng chỉ.
Ở bước này, bạn cần phải cung cấp Private Key và CSR file, hãy cẩn thận lưu lại Private Key này để sử dụng ở bước bên dưới. Bạn sẽ được yêu cầu cung cấp nội dung file CSR khi kích hoạt SSL.
Để có 2 key này bạn sử dụng công cụ Tạo CSR Online của Học VPS hoặc dùng lệnh openssl
trên server Linux:
openssl req -new -newkey rsa:2048 -nodes -keyout example_com.key -out example_com.csr
Sau đó 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.
2. Tạo file Bundle
Kết thúc bước này chúng ta sẽ có file ssl-bundle.crt
, thứ tự các file thao tác ở bước này rất quan trọng, bạn cần lưu ý thực hiện theo cho chuẩn.
a. Chứng chỉ của Comodo
Nếu kích hoạt chứng chỉ SSL thành công, email gửi từ Comodo có tiêu đề tương tự như sau: “Your PositiveSSL Certificate for canhme.com“, trong mail có đính kèm 1 file nén canhme_com.zip
, lúc này có thể có 2 trường hợp.
– File nén .ZIP gồm 2 file:
- canhme_com.crt
- canhme_com.ca-bundle
Bạn dùng text editor, tạo file mới ssl-bundle.crt
chứa nội dung của 2 file, thứ tự lần lượt: canhme_com.crt > canhme_com.ca-bundle
– File nén .ZIP gồm 3 file:
- canhme_com.crt
- COMODO_RSA_Certification_Authority.crt
- AddTrust_External_CA_Root.crt
Bạn dùng text editor, tạo file mới ssl-bundle.crt
chứa nội dung của 3 file, thứ tự lần lượt: canhme_com.crt > COMODO_RSA_Certification_Authority.crt > AddTrust_External_CA_Root.crt
Hoặc chạy lệnh sau:
cat canhme_com.crt COMODO_RSA_Certification_Authority.crt AddTrust_External_CA_Root.crt > ssl-bundle.crt
– File nén .ZIP gồm 4 file:
- canhme_com.crt
- COMODORSADomainValidationSecureServerCA.crt
- COMODORSAAddTrustCA.crt
- AddTrustExternalCARoot.crt
Bạn dùng text editor, tạo file mới ssl-bundle.crt
chứa nội dung của 4 file, thứ tự lần lượt: canhme_com.crt > COMODORSADomainValidationSecureServerCA.crt > COMODORSAAddTrustCA.crt > AddTrustExternalCARoot.crt
Hoặc chạy lệnh sau:
cat canhme_com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > ssl-bundle.crt
– File nén .ZIP gồm 6 file (Sectigo Comodo):
- canhme_com.crt
- canhme.com.key
- USERTrustRSAAddTrustCA.crt
- SectigoRSADomainValidationSecureServerCA.crt
- My_CA_Bundle.ca-bundle
- AddTrustExternalCARoot.crt
Bạn dùng text editor, tạo file mới ssl-bundle.crt
chứa nội dung của 4 file, thứ tự lần lượt: canhme_com.crt > SectigoRSADomainValidationSecureServerCA.crt > USERTrustRSAAddTrustCA.crt > AddTrustExternalCARoot.crt
Hoặc chạy lệnh sau:
cat canhme_com.crt SectigoRSADomainValidationSecureServerCA.crt USERTrustRSAAddTrustCA.crt AddTrustExternalCARoot.crt >> ssl-bundle.crt
Và file canhme.com.key
chính là Private Key của chứng chỉ
b. Chứng chỉ của GoDaddy
Với chứng chỉ SSL của GoDaddy, file nén sẽ gồm 2 file, ví dụ:
- 9981e0dcd97c0b37.crt
- gdig2_bundle.crt
Bạn dùng text editor, tạo file mới ssl-bundle.crt
chứa nội dung của 2 file, thứ tự lần lượt: 9981e0dcd97c0b37.crt > gdig2_bundle.crt
3. Cài đặt chứng chỉ SSL
Bước này mình thao tác trên server cài đặt HocVPS Script, với server cài đặt thủ công hoặc các server Nginx khác cách làm cũng tương tự bạn cứ đọc thật kĩ là hiểu. Vướng mắc chỗ nào để lại comment mình sẽ support luôn.
Tạo thư mục chứa file chứng chỉ:
mkdir -p /etc/nginx/ssl/canhme_com/ && cd /etc/nginx/ssl/canhme_com/
Lưu nội dung file chứng chỉ ở thư mục này, copy/paste dùng nano
nano ssl-bundle.crt
Lưu nội dung Private Key chung thư mục:
nano private.key
Kiểm tra độ trùng khớp của chứng chỉ và Private Key, trùng mã MD5 là okie
# openssl x509 -noout -modulus -in ssl-bundle.crt | openssl md5 (stdin)= 334d84440715d4dc1c96ddbcf71a0f8e # openssl rsa -noout -modulus -in private.key | openssl md5 (stdin)= 334d84440715d4dc1c96ddbcf71a0f8e
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
Tiếp theo, chúng ta sẽ chỉnh lại file cấu hình Nginx. Ví dụ tên miền của mình là canhme.com
thì file cấu hình sẽ có đường dẫn là /etc/nginx/conf.d/canhme.com.conf
Chỉnh sửa cấu hình Nginx domain với Nano Editor
nano /etc/nginx/conf.d/canhme.com.conf
Cấu hình SSL xử lý các request
Trong block server { ... }
thứ 2 điều chỉnh như sau:
+ Chuyển listen 80 default_server;
thành listen 443 ssl default_server;
+ Sau dòng server_name canhme.com;
thêm đoạn cấu hình SSL đã được mình tối ưu:
# SSL ssl_certificate /etc/nginx/ssl/canhme_com/ssl-bundle.crt; ssl_certificate_key /etc/nginx/ssl/canhme_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;
Redirect toàn bộ www http sang https
Trong block server { ... }
ở phía trên cùng:
+ Chuyển server_name www.canhme.com;
thành server_name canhme.com www.canhme.com;
+ Chuyển rewrite ^(.*) http://canhme.com$1 permanent;
thành rewrite ^(.*) https://canhme.com$1 permanent;
Kết quả được như sau:
server { listen 80; server_name canhme.com www.canhme.com; rewrite ^(.*) https://canhme.com$1 permanent; }
Lúc này khi truy cập https://canhme.com và http://www.canhme.com sẽ tự động redirect sang https://canhme.com
Redirect toàn bộ www https sang https
Thêm mới block server { ... }
ở trên cùng
server { listen 443 ssl; server_name www.canhme.com; # SSL ssl_certificate /etc/nginx/ssl/canhme_com/ssl-bundle.crt; ssl_certificate_key /etc/nginx/ssl/canhme_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://canhme.com$1 permanent; }
Lúc này khi truy cập https://www.canhme.com sẽ tự động redirect sang https://canhme.com
Cấu hình SSL với port quản lý HocVPS Script Admin
Lưu ý: Chỉ thiết lập đối với domain chính cài HocVPS – Domain phụ KHÔNG thiết lập.
Đây chỉ là bước tùy chọn, nếu bạn sử dụng Cloudflare và kích hoạt đám mây ẩn IP thì không được làm bước này. Nếu bạn không muốn dùng IP, chỉ muốn dùng domain để truy cập khu vực HocVPS Script Admin thì hãy thao tác như bên dưới.
Ví dụ khi cài đặt mình để port mặc định 2018
.
Tìm block cuối cùng server { ... }
có dòng listen 2018;
Thêm chữ ssl và đoạn cấu hình SSL tương tự như bên dưới:
server { listen 2018 ssl; access_log off; log_not_found off; error_log off; root /home/canhme.com/private_html; index index.php index.html index.htm; server_name canhme.com; error_page 497 https://$server_name:$server_port$request_uri; # SSL ssl_certificate /etc/nginx/ssl/canhme_com/ssl-bundle.crt; ssl_certificate_key /etc/nginx/ssl/canhme_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'; auth_basic "Restricted"; auth_basic_user_file /home/canhme.com/private_html/hocvps/.htpasswd; ...
Lúc này link login HocVPS Script Admin sẽ là https://canhme.com:2018, không sử dụng IP nữa.
File cấu hình Nginx cuối cùng sẽ tương tự như sau:
server { listen 443 ssl; server_name www.canhme.com; # SSL ssl_certificate /etc/nginx/ssl/canhme_com/ssl-bundle.crt; ssl_certificate_key /etc/nginx/ssl/canhme_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://canhme.com$1 permanent; } server { listen 80; server_name canhme.com www.canhme.com; rewrite ^(.*) https://canhme.com$1 permanent; } server { listen 443 ssl default_server; # access_log off; access_log /home/canhme.com/logs/access.log; # error_log off; error_log /home/canhme.com/logs/error.log; root /home/canhme.com/public_html; index index.php index.html index.htm; server_name canhme.com; # SSL ssl_certificate /etc/nginx/ssl/canhme_com/ssl-bundle.crt; ssl_certificate_key /etc/nginx/ssl/canhme_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; location / { try_files $uri $uri/ /index.php?$args; } # Custom configuration include /home/canhme.com/public_html/*.conf; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_connect_timeout 1000; fastcgi_send_timeout 1000; fastcgi_read_timeout 1000; fastcgi_buffer_size 256k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; fastcgi_param SCRIPT_FILENAME /home/canhme.com/public_html$fastcgi_script_name; } location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; } location /php_status { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/canhme.com/public_html$fastcgi_script_name; include /etc/nginx/fastcgi_params; allow 127.0.0.1; deny all; } # Disable .htaccess and other hidden files location ~ /\.(?!well-known).* { deny all; access_log off; log_not_found off; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location ~* \.(3gp|gif|jpg|jpeg|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso|eot|svg|ttf|woff)$ { gzip_static off; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; access_log off; expires 30d; break; } location ~* \.(txt|js|css)$ { add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; access_log off; expires 30d; break; } } server { listen 2018 ssl; access_log off; log_not_found off; error_log /home/canhme.com/logs/nginx_error.log; root /home/canhme.com/private_html; index index.php index.html index.htm; server_name canhme.com; error_page 497 https://$server_name:$server_port$request_uri; # SSL ssl_certificate /etc/nginx/ssl/canhme_com/ssl-bundle.crt; ssl_certificate_key /etc/nginx/ssl/canhme_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'; auth_basic "Restricted"; auth_basic_user_file /home/canhme.com/private_html/hocvps/.htpasswd; location / { autoindex on; try_files $uri $uri/ /index.php; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_connect_timeout 1000; fastcgi_send_timeout 1000; fastcgi_read_timeout 1000; fastcgi_buffer_size 256k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; fastcgi_param SCRIPT_FILENAME /home/canhme.com/private_html$fastcgi_script_name; } location ~ /\. { deny all; } }
_ Cấu hình SSL cho domain không phải domain chính trong HocVPS Script:
- Không thiết lập HocVPS Admin Port
- Bỏ tham số
default_server
bên cạnhlisten 443
_ Cloudflare: Để kết hợp sử dụng CDN Cloudflare (biểu tượng đám mây vàng):
- Thiết lập Full (strict) trong menu Crypto SSL tại trang quản lý Cloudflare.
- Không cấu hình SSL phần Admin HocVPS. Khi đó, truy cập HocVPS Admin bằng
ip:port
_ Cấu hình HTTP/2 tham khảo Kích hoạt HTTP/2 với Nginx.
_ Cấu hình OCSP Stappling tham khảo Tối ưu HTTPS trên Nginx.
Kiểm tra lại cấu hình Nginx xem đã chuẩn chưa
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Reload lại Nginx : service nginx reload
Nếu bạn dùng WordPress, hãy cài đặt plugin Really Simple SSL để tự động redirect http sang https và chuyển toàn bộ link .css, .js sang https. Thanh địa chỉ lúc này sẽ có màu xanh. Nếu không muốn dùng plugin, bạn hãy tham khảo thêm Hướng dẫn cài đặt Let’s Encrypt trong cPanel để biết cách thao tác thủ công.
Giờ truy cập vào domain để tận hưởng thành quả thôi. Chúc bạn thành công.
Admin cho hỏi. Mình đã cài theo hướng dẫn và đã sử dụng thành công nhưng khi vào login trang admin cùa hocvps thì ko kết nối đc. Mình thử cài plugin Really Simple SSL thì không truy cập được link dưới dạng https://domain.com:port/ mà truy cập địa chỉ dạng IP:port đc nhưng lại bị cảnh báo không bảo mật và bị gạch ngang chỗ https.
1. Bạn cho mình cấu hình Nginx Conf bạn vừa thiết lập
2. Bạn có bật đám mây vàng Cloudfare không
file conf đây ạ: https://pastebin.com/CJ4xCSmF
Bên cloudflare có bật đám mây vàng ạ.
Tks mod
Bạn tắt đám mây vàng đi. Như trong lưu ý của bài viết đó. Còn không tắt thì truy cập bằng ip:port, phần advance khi chrome hiển thị vẫn cho phép truy cập
Luân ơi, bạn có thể hướng dẫn mình cách gia hạn chứng chỉ SSL được không ?
Nếu chứng chỉ bạn là thu phí thì bạn gia hạn bên nhà cung cấp nhé, như gia hạn domain đó
Bạn ơi mình cài VPS mình cài Hocvps – nginx, mình cài 2 domain SSL ngon rồi, nhưng khi mình cài domain thứ 3 thì cứ tự động redirect về domain 2 (không phải domain chính). config code cofig dư này: https://docs.google.com/document/d/176nQllk8Qnpyy653UIB-65rCEJ87H53ir4Mjyj9L6h0/edit?usp=sharing
Mình cần toàn bộ Nginx Conf của hệ thống mới xác định được nhé, bạn gửi qua support@hocvps.com
Và
nginx -t
cùngsystemctl status nginx -l
của bạn ra kết quả gìCảm ơn bạn. Mình đã thực hiện được. Mình dùng hocvps script, khi chuyển sang ssl cũng không dùng plugins. Mọi người có thể xem bài bên vietnetgroup hướng dẫn: https://www.vietnetgroup.vn/cap-nhat-url-wordpress-khi-thay-doi-link-ten-mien-moi.html
Mình cài ssl thành công rồi, bây giờ mình muốn chuyển sang VPS mới thì backup cấu hình ssl như thế nào cho tối ưu? Cám ơn ad
Vẫn như thế thôi. Bạn copy chứng chỉ sang VPS mới cài lại nhé. Nginx Conf thì có sẵn rồi
1 VPS có thể dùng cả 2 hướng dẫn https://hocvps.com/cai-dat-chung-chi-ssl/ và https://hocvps.com/cai-dat-lets-encrypt/ để tạo 2 loại ssl không vậy? Hay chỉ được dùng 1 loại? Có xung đột gì không? Có ai test thử chưa? Cảm ơn rất nhiều ạ!
Một bên là chứng chỉ thu phí một bên chứng chỉ miễn phí nhé bạn. Dùng song song trong 1 VPS bình thường
cái file DH Parameter dùng để lam gì vậy bạn
Bạn đọc bài viết này nhé https://hocvps.com/toi-uu-https-tren-nginx/#5._DH_parameters
Mình gặp phải 1 lỗi quá lạ trước nay chưa bao giờ gặp. Có bác nào giúp mình với.
Kiểu nó thế này. Vps mình có 4,5 site, đều dùng http
Hôm trước mình cài https cho 1 trong số các site đó. Bây giờ bị tình trạng là cứ truy cập vào các site còn lại mà dùng https là nó trỏ vào cái site mới cài https. Còn truy cập bằng http thì các site đó vẫn bình thường.
Rối quá không biết giải quyết sao. Bác nào ở Hà Nội giúp mình vụ này mình mời cà phê và có hậu tạ ạ.
Bạn bỏ
default_server
trong Nginx Conf của site cài SSL nhé. Rồi restart lại Nginx.Về cơ bản, đó là mặc định của Nginx khi show default với những website không tồn tại
Ví dụ, domain A bạn cài SSL tức bạn đã quy định cho
http, http://www, https, https://www
Domain B,C,D bạn không cài SSL tức bạn chỉ quy định cho
http, http://www.
. Như vậy, HTTPS của domain B,C,D không được quy định thì khi đó Nginx sẽ show ra mặc định, tứcdefault_server
Về mindset thông thường thì cũng không user nào gõ https cả. Họ chỉ truy cập http rồi redirect về https. Nên việc bạn làm là thừa
Triệt để thì bạn cấu hình từng cái domain B,C,D https redirect về http là xong
Cảm ơn bạn đã trả lời. Mình đã tìm trong cả folder /etc/nginx/ rồi nhưng không có chỗ nào về default_server cả bạn ạ
1. Trong
/etc/nginx/conf.d/
2. Cách đó cũng không triệt để, đơn giản hiểu là cái gì không cấu hình thì Nginx sẽ show mặc định
Done. Note: Nginx nếu không quy định default_server sẽ tự động lấy block đầu tiên làm default (theo thứ tự anphabet)
Mình cài SSL xong kiểm tra thì sever báo lại thế này
nginx: [warn] conflicting server name “coinactiveltd.com” on 0.0.0.0:443, ignored
nginx: [warn] conflicting server name “www.coinactiveltd.com” on 0.0.0.0:443, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Cấu hình conflict do trùng lặp. Tức trong
/etc/nginx/conf.d
có hơn một đoạn cấu hình vềcoinactiveltd.com
port 443Tương tự với
www.coinactiveltd.com
port 444. Bạn kiểm tra file nghi ngờ, thấy trùng thì xóa đi.dùng lệnh openssl trên server Linux: xong rồi lấy file ở đâu vậy hocvps ?
File trên VPS, vị trí gõ lệnh sẽ sinh ra file
Hi Luân,
Mình hỏi chút, có phải là 1 VPS chỉ có thể đăng ký 1 chứng chỉ SSL cho 1 domain thôi đúng không?
1 VPS chạy được nhiều site tương đương nhiều chứng chỉ cho nhiều domain bạn nhé
bac’ oi e hoi chut con cai dat cho addon domain config khac dung k? cai kia la park domain
Addon Domain là nhiều website trên nhiều domain. Khái niệm ý chỉ bên Hosting chứ VPS liên quan gì đâu bạn?
Còn parkdomain là nhiều domain cho 1 website thì HocVPS có menu tạo park domain rồi
Mình đã cài thành công theo hướng dẫn nhưng kết nối đến site ban đầu rất chậm, có cách nào khăc phúc kk ạ
Luân vs Mod cho mình hỏi mình chút nhé!
Mình đã cài thành công ssl theo hướng dẫn ở bài này.
Sau đó cài varnish cho site, tuy nhiên có một số thắc mắc thế này:
1. Sử dụng lệnh curl -I tenmien.com thì thấy là varnish đã hoạt động. Kết quả trả về ntn ạ:
[root@vultr home]# curl -I tenmien.com
HTTP/1.1 301 Moved Permanently
Date: Thu, 16 Nov 2017 07:04:47 GMT
Content-Type: text/html
Content-Length: 178
Location: https://tenmien.com/
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Varnish: 59 65567
Age: 590
Via: 1.1 varnish-v4
X-Cache: HIT
Access-Control-Allow-Origin: *
Server: HocVPS Script
Connection: keep-alive
Mình muốn hỏi là ở dòng HTTP/1.1 301 Moved Permanently như thế này là đã cấu hình đúng chưa?
2. Khi chạy lệnh curl -I https://tenmien.com kết quả trả về thế này:
[root@vultr home]# curl -I https://tenmien.com
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 16 Nov 2017 07:14:23 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
Link: ; rel=”https://api.w.org/”
Strict-Transport-Security: max-age=31536000
Mình nghĩ chỗ này có sai sót gì đó, có lẽ là trong file cấu hình nginx. Vì mình cài ssl theo bài này nên file nginx rất dài như trong bài viết này, đến bước “Thêm đoạn code cấu hình Nginx làm SSL Proxy” thì mình không biết chính xác phải edit trong đoạn nào, thử vài lần thì thấy kết quả trả về khi gõ lệnh curl đều như trên.
Vậy nhờ Admin và Mod hướng dẫn cụ thể theo file cấu hình nginx ở bài này được không ạ?
Mong được hồi đáp!
Do mình mới tiếp xúc với VPS nên toàn step by step theo hướng dẫn, nhiều khi không hiểu bản chất nên thấy khó quá. Nhờ Luân và mod Phương giải đáp giúp mình ạ. Cảm ơn rất nhiều
1. Đúng vì bản chất website bạn không còn hoạt động ở HTTP nữa rồi. Đã tự redirect sang HTTPS
2. Bạn đã cấu hình cả Varnish như bài hướng dẫn chưa. Bạn post full cấu hình Nginx và Varnish ra. Paste qua https://pastebin.com/ cho gọn
https://hocvps.com/su-dung-https-voi-varnish/
Đây ạ
https://pastebin.com/W8ewTi2V
https://pastebin.com/RPc7rzdY
Mod giúp em với, loay hoay hơn ngày nay rồi ạ!
Mod giúp em với ạ! Em thử các kiểu rồi vẫn không được, hix
Mình làm đến bước này
“Lưu nội dung file chứng chỉ ở thư mục này, copy/paste dùng nano” không biết paste làm thế nào nhỉ? Bạn nào biết chỉ chi tiết dùm mình với
Paste thì bạn Ctrl C Ctrl V vào thôi. Tùy trình SSH có thể khác nhau, như Bitvise CtrlV là chuột phải
https://hocvps.com/cach-su-dung-nano-editor/
Mình làm theo hướng dẫn chạy ngon rồi nhưng lại gặp vấn đề lỗi ko truy cập được với www, mình phải làm gì vậy Luân.
Website mình là: fresh.com.vn
cảm ơn Luân do mình chưa set www trong DNS.
Cài thì chạy ngon lành .. nhưng lâu lâu lại bị lỗi này : https://i.imgur.com/12d8iUj.png //// và mất tầm 2 – 3 phút mới truy cập lại mới được….. Fix lỗi trên như thế nào vậy ad 🙂
Đứt cáp quốc tế thì sẽ có vấn đề với đường truyền sang Cloudfare nhé bạn, vấn đề mạng thôi. Lúc đó CF không phân giải được tên miền
Cứu tưởng bị lỗi gì.. cảm ơm ad…
ad cho hỏi. server mình còn dư có 25mb ram thì có cài được ssl không. Mình không muốn nâng cấp thêm sever vì tốn chi phí do tại nó cũng đang chạy rất tốt
ad dạo này ít trả lời quá 🙁
Tối mình dạo này bận nên k onl thường xuyên được. Cài được nhé
admin cho mình hỏi ?
nếu mình sử dụng ssl Flexible miễn phí của cloudfare thì làm thế nào? cài đặt trên vps linode.
thanks.
Mình không rõ cụ thể rồi. Hình như không cần cài đặt gì trên VPS, chỉ cần cài trên Cloudfare vì lúc này mọi truy vấn qua CF rồi. CF hoạt động như 1 proxy webserver
mình cài như trên hosting nhưng không được
mình nghĩ cần phải khai báo vps thì nó mới nhận được đấy .
Thế mình không rõ rồi. Hàng free mình thấy mọi người dùng Let’s Encrypt nhiều hơn nên cũng k quan tâm nhiều lắm bên CF
Cloudflare tự nhận rồi nên chỉ cẩn cài cái really ssl trên là ok.
bài viết rất hay,nhờ nó mình cài SSL được rùi. thanks ADMIN
các bạn test giúp 2core 2 ram chạy SSL ngon hok : https://tinka.vn
Cho mình hỏi là khi gia hạn ssl thì có cần phải làm lại các bước như trên không ạ? hay chỉ cần thanh toán trả tiền thế là ngày sẽ được cộng dồn vào chứng chỉ cũ
Xin cám ơn
Mình không rõ rồi. Có thể nhà cung cấp sẽ đưa bạn file chứng chỉ mới để cài đặt
Mình cài xong rồi chạy lệnh
nginx -t
thì bị lỗi này
nginx: [emerg] SSL_CTX_use_PrivateKey_file(“/etc/nginx/ssl/domain_com/private.key”) failed (SSL: error:0906D06C:PEM routines:PE ạ_read_bio:no start line:Expecting: ANY PRIVATE KEY error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib)
Cho mình nội dung Nginx Conf của bạn đã sửa
Luân cho mình hoi la, minh loai hoai cai ssl cho vps gio khong vao duoc trang luon, ke ca vao admin cung ko vao dc la bi loi gi vay? Thanks,
Bạn
nginx -t
ra thông báo gìmình cài lại hết rùi bạn. thanks
Mình cài PositiveSSL từ Comodo theo hướng dẫn của bạn đã thành công, nhưng khi mình thay đổi VPS (bỏ chứng chỉ PositiveSSL từ Comodo) và dùng chứng chỉ ssl của Cloudflare thì website không chạy. VPS mới thì mình cài mới hoàn toàn, bạn vui lòng cho mình xin ý kiến nhé,
Mình không dùng CF nên không rõ rồi. Nếu chứng chỉ CF là dạng file tải về thì bạn upload lên VPS thay thế chứng chỉ Positive cũ, đảm bảo đường dẫn trong cấu hình Nginx
Còn nếu chỉ là tích ở trên Cloudfare thì bên Nginx có thể bạn sẽ không cần cấu hình SSL gì cả, giữ nguyên cấu hình HTTP 80 ban đầu
bạn cho mình hỏi khi cài cái này xong có ảnh hưởng đến seo không? Có cần redirect 301 gì nữa không? Mong được trả lời! 🙁
SEO sẽ ảnh hưởng nhé bạn. Còn câu lệnh đã redirect toàn bộ Link về HTTPS nhé
cho mình hỏi là mình muốn chuyển site có ssl sang vps khác thì có phải cài đặt lại từ đầu không, hay chỉ cần copy các file cấu hình sang là ok
Nếu bạn là SSL mua có phí thì bạn chuyển file chứng chỉ và file cấu hình sang đè vào cấu hình trên VPS là ok
nên mua ssl ở đâu bạn. mình gõ Comodo ssl nó ra cũng nhiều link.. cho mình 1 cái link với
Có nhiều đại lý. Bạn tham khảo các khuyến mại từ CanhMe nhé
Khi hết hạn, cần gia hạn thì thao tác như thế nào vậy các bác.
Bạn gia hạn từ nhà cung cấp để họ phát hành cho bộ chứng chỉ mới thôi
Phức tạp quá. Dùng Let’s Encrypt cho lành
Thì hướng dẫn này dành cho SSL thu phí mà bạn. Let’s Encrypt bạn tham khảo: https://hocvps.com/cai-dat-lets-encrypt/
Mình cài xong chạy # nginx -t thì ra lỗi như này, không biết sửa như nào bạn nhỉ?
a duplicate default server for 0.0.0.0:443 in /etc/nginx/conf.d/example.com.conf:19
dòng 19 như file hướng dẫn như sau:
listen 443 ssl http2 default_server;
File conf của mình đây https://pastebin.com/ZraSc7wd
Bạn check hộ mình nhé, mình cám ơn
Cho mình hỏi site này có phải site chính cài đặt HocVPS không hay site phụ?
Site này là site chính cài đặt hocvps bạn ạ, mình có 1 site nữa trên vps đã cài xong ssl rồi.
Nêu thế, bạn vào Nginx Conf của site còn lại xem có
default_server
không thì xóa đi nhé. Một webserver có 1 cáidefault_server
thôi. Do site này cài sau nên nó sẽ báo lỗi ở site nàyMình gặp lỗi The domain.com page isn’t working. domain.com redirected you too many times.
Nguyên nhân là do đang để chế độ ẩn IP của CloudFlare, tuy nhiên mình vẫn muốn ẩn đi, Vậy có cách nào fix cái này không bạn.
Bạn đọc phần note trong bài viết về Cloudfare nhé
Cho mình hỏi,
Mình đã cài đc SSL nhưng sau khi up ảnh lên Media của WordPress thì đường dẫn ảnh không phải là https mà cứ là http??
Bạn có dùng plugin SSL như trong hướng dẫn không vậy? Mà thường up lên là https luôn mà (do là content mới từ thời điểm có SSL)
Mình đang dùng script hocvps cho vps của mình
Site chính mình cài SSL của Comodo rồi
Giờ site thứ 2 trên VPS đó mình muốn cài SSL của Let Encrypt thì như thế nào vậy ad?
Được nhé bạn. Bạn theo hướng dẫn bài https://hocvps.com/cai-dat-lets-encrypt/ thôi. Chú ý cấu hình Nginx Conf thì không thêm phần HocVPS Admin cho site phụ
Bạn ơi cho mình hỏi, mình cài VPS của vurlt bằng hocvps với port quản lý là domain A ( doianA:2010/…) Nhưng khi mình cài SSl cho domain B, được add vào VPS, thì khi đăng nhập vào file manager, phpadmin đều tự redirect sang hết https://domianB:2000/filemanager) Không biết giờ sửa file cấu hình như thế nào nhỉ? Cám ơn bạn,
Bạn cài SSL cho domain B không thêm phần port quản lý nhé, tức phần Nginx Conf của Domain B chỉ gồm 3 block (2 block 443 và 1 block 80). Bạn xóa trong Nginx Conf của domain B đi rồi restart lại Nginx
Muahaha, cám ơn bạn, mình làm được rồi 🙂
Mình muốn kích hoạt SSL cho domain http://trehoada.com trên VPS Vultr theo cách đó có được không.
Được bạn nhé
https://pastebin.com/qJ56uy55
Bạn xem dùm mình cấu hình có sai chỗ nào không mà khi vào trang lại không có được
http://imgur.com/a/enCA0
Bạn bỏ phần SSL của block 80 đi, thêm SSL vào block 443 ssl http2 default_server
Sửa dòng
error_page 497 https://$server_name:2017$request_uri;
thành đúng Port Admin của bạnhttps://pastebin.com/Jfu9S2pQ
Mình đã sửa lại những vẫn bị lỗi như trên, bạn coi giúp mình với
Phần block của
listen 443 ssl http2 default_server;
mình có thấy SSL nào đâu?Phần block
80
thì xóa dòngrewrite ^(.*) http://musicisourdrug.net$1 permanent;
đíÀ, mình sửa sai chỗ, mình làm đc rồi, cảm ơn bạn nhé
Mình bị lỗi nãy khi test nginx -t
nginx: [emerg] SSL_CTX_use_PrivateKey_file(“/etc/nginx/ssl/sexhay69_com/sexhay69_com.key”) failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)
nginx: configuration file /etc/nginx/nginx.conf test failed
Key không trùng với Cert. Bạn kiểm tra lại thông tin của cả Key và Cert nhé.
Kiểm tra md5 đầu tiên:
# openssl x509 -noout -modulus -in CERT | openssl md5
# openssl rsa -noout -modulus -in KEY | openssl md5
Chào Luân,
Mình cài ssl theo như hướng dẫn, rồi cuối cùng là cài thêm plugin Really Simple SSL, trên url nó cũng hiển thị ra https://, nhưng không có lên màu xanh. Click vào xem thấy báo lỗi “Your connection to this site is not fully secure”. Lỗi này là lỗi gì nhỉ? Mình nên khắc phục như thế nào?
Tư vấn giúp mình với nhé. Chân thành cám ơn.
Website bạn là gì? Lỗi này do vẫn còn thành phần trong website bạn chưa chuyển đổi sang HTTPS. Viewsource để xem phần nào chưa đổi thì đổi
Web của mình là https://coffees.mobi/. Phương xem qua giúp nhé. Mình tay ngang vào nghề web nên không rành lắm.
Mình test thì thấy ok mà http://prntscr.com/fj2ti5. Chắc do cache bên bạn
À, mình mày mò cài thêm plugin “SSL Insecure Content Fixer” trong WordPress, rồi tùy chỉnh trong phần Settings, plugin nó tự sửa lỗi luôn. Cám ơn Phương nhé.
chào bác, bác làm ơn cho em hỏi chút sao trong file cấu hình cuối cùng của bác có 2 đoạn
server {
listen 443 ssl http2;
và
server {
listen 443 ssl http2 default_server;
là sao vậy ạ. Giờ file cấu hình của em nên sửa thế nào. EM đọc mà khó hiểu quá vì trong bài hướng dẫn trên ko có đoạn
server {
listen 443 ssl http2 default_server;
1 đoạn chỉ cấu hình redirect HTTPS WWW về HTTPS NON-WWW
1 đoạn cấu hình nhận HTTPS NON-WWW và show website ra
Và mình có ghi : Chuyển
listen 80 default_server;
thànhlisten 443 ssl http2 default_server;
màNếu bạn cài SSL cho site khác domain chính, sẽ không cần tham số
default_server;
Sever mình sử dụng Easy Engine để tạo nên không thấy file /etc/nginx/conf.d/domain.com.conf. vậy force-ssl-domain.conf có phải file cấu hình.
Bạn xem nội dung bên trong có phải cấu hình Nginx của domain bạn cần không thì chỉnh sửa
mình thấy giống với file cấu hình domain nhưng làm xong thì không được, không biết lỗi ở đâu.
Cho mình nội dung gốc file ý và file bạn sau khi chỉnh sửa. Mình nghĩ thì không giống lắm, File ý có vẻ chỉ để ép SSL, chứ k phải cấu hình cả domain
Mình cũng nghĩ đó không phải file cấu hình. mình tìm thấy file cáu hình có phải như vậy:
server {
server_name thuoc.vn http://www.thuoc.vn;
access_log /var/log/nginx/thuoc.vn.access.log rt_cache;
error_log /var/log/nginx/thuoc.vn.error.log;
root /var/www/thuoc.vn/htdocs;
index index.php index.html index.htm;
include common/wpfc.conf;
include common/wpcommon.conf;
include common/locations.conf;
include /var/www/thuoc.vn/conf/nginx/*.conf;
}
mình sửa lại
# SSL
ssl_certificate /etc/nginx/ssl/thuoc_vn/ssl-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/thuoc_vn/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;
Đây là nội dung file forcesll à? Theo nội dung file
server
dưới thì nó có include file nào tên forcessl đâu?Mình đoán file forcessl trong hệ thống này chỉ giúp rewrite URL chứ không phải chứng chỉ. Chứng chỉ sẽ nằm trong file
server
bạn post trêncái này làm nghe khó quá đi à