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 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.

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:

  1. canhme_com.crt
  2. 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:

  1. canhme_com.crt
  2. COMODO_RSA_Certification_Authority.crt
  3. 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:

  1. canhme_com.crt
  2. COMODORSADomainValidationSecureServerCA.crt
  3. COMODORSAAddTrustCA.crt
  4. 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

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ụ:

  1. 9981e0dcd97c0b37.crt
  2. 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/

Lưu nội dung file chứng chỉ ở thư mục này, copy/paste dùng nano

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

Lưu nội dung Private Key chung thư mục:

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

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 http2 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 http://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 http2;
	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

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 2017.

Tìm block cuối cùng server { ... } có dòng listen 2017;

Thêm chữ ssl và đoạn cấu hình SSL tương tự như bên dưới:

server {
	listen   2017 ssl http2;
 	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:2017$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:2017, 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 http2;
	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 http2 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   2017 ssl http2;
 	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:2017$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;
	}
}


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 do SSL Cloudflare không truy cập port qua domain được. Khi đó, truy cập HocVPS Admin bằng ip:port

_ Phần HocVPS AdminPort chỉ thiết lập đối với domain chính cài HocVPS – Domain phụ KHÔNG thiết lập


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 cấu hình SSL cho domain không phải domain chính trong HocVPS, block server chứa root web root /home/canhme.com/public_html; sẽ không có tham số default_server;. Đồng thời, không cấu hình HocVPS Admin.

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.

Comment của bạn

Your email address will not be published. Required fields are marked *

235 Comments

  1. Hoàng Thịnh 1 comment

    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

    1. Việt Phương Moderator

      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

  2. huycoi 5 comment

    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.

    1. Việt Phương Moderator

      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

        1. Việt Phương Moderator

          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

  3. hong vi 34 comment

    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

      1. Việt Phương Moderator

        Tối mình dạo này bận nên k onl thường xuyên được. Cài được nhé

    1. Việt Phương Moderator

      Đứ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

  4. Hiền Bí 5 comment

    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

  5. infox.vn 1 comment

    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

  6. Tung Dang Thanh 4 comment

    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!

    1. Tung Dang Thanh 4 comment

      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. Tung Dang Thanh 4 comment

          Mod giúp em với ạ! Em thử các kiểu rồi vẫn không được, hix

  7. Kiet 7 comment

    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. Việt Phương Moderator

      1 VPS chạy được nhiều site tương đương nhiều chứng chỉ cho nhiều domain bạn nhé

        1. Việt Phương Moderator

          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

  8. Nguyen The Duy 2 comment

    dùng lệnh openssl trên server Linux: xong rồi lấy file ở đâu vậy hocvps ?

  9. Nguyen The Duy 2 comment

    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

    1. Việt Phương Moderator

      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 443
      Tươ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.

  10. Long Nguyễn 2 comment

    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ạ ạ.

    1. Việt Phương Moderator

      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ức default_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

      1. Long Nguyễn 2 comment

        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. Việt Phương Moderator

          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

          1. Việt Phương Moderator

            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)

    1. Việt Phương Moderator

      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

  11. Luong Nguyen 5 comment

    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

    1. Việt Phương Moderator

      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