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.

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/ && 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

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

Comment của bạn

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

338 Comments

  1. quangmen93 19 comment

    Mình muốn tắt ghi access.log … Thì chỉ cần sữa

    access_log /home/domain.com/logs/access.log;

    thành

    access_log /dev/null crit;

    Phải ko ad 🙂

    1. Việt Phương Moderator

      Sửa thành như thế này bạn nhé
      access_log off;
      # access_log /home/domain/logs/access.log;

      Để ý ngay trên đó là dòng access_log off

  2. Việt Anh 1 comment

    Mình chuyển VPS nhưng bây giờ không biết lấy lại Private key như thế nào ?

    1. Việt Phương Moderator

      Nhà cung cấp không lưu private key của bạn nên nếu bạn không lưu private thì chỉ còn cách issue lại chứng chỉ thôi
      VPS cũ chắc bạn cũng xóa rồi?

  3. chung 1 comment

    hocvps cho mình hỏi chút
    trước web mình add ở google là https:domain
    giờ mình chuyển thành https://www.domain.com
    google yêu cầu chuyển hướng 301
    ở cpanel thì mình dừng .hta đc
    ở nginx mình không biết lên add thế nào
    cậu có thể hướng dẫn cho mình đc ko vậy
    mình thử dùng rule này
    server {
    server_name example.com;
    return 301 http://www.example.com$request_uri;
    }
    nó lại báo lỗi:
    nginx: [warn] conflicting server name “domain” on 0.0.0.0:80, ignored

    1. Việt Phương Moderator

      Lỗi trên là có 2 chỗ bạn cùng quy định domain:80
      Chắc bạn vừa quy định nó return301 ở block đầu xong block dưới bạn lại yêu cầu nó show document_root

  4. Quy 2 comment

    Bạn ơi cho mình hỏi, mình đã cài thành công theo hướng dẫn nhưng khi check mã chuyển hưởng nó báo mã chuyển hướng là 307 chứ không phải là 301.
    Cái này là do đâu nhỉ. bên dự án Seo của mình họ bảo phải chuyển hướng 301
    Mình chụp lại ảnh ở đây: https://sv1.uphinhnhanh.com/images/2018/09/04/Capture.jpg

    1. Việt Phương Moderator

      Nếu thế bạn cần disable HSTS đi nhé, cụ thể là xóa phần dưới
      # Enable HSTS
      add_header Strict-Transport-Security "max-age=31536000" always;

      1. Quy 2 comment

        Cảm ơn bạn, mình đã chuyển thành 301 ở phần cài đặt cái này. Đối với hướng dẫn cài ssl miễn phí ở đây: https://hocvps.com/cai-dat-lets-encrypt/ thì cũng làm tương tự phải không bạn. Sao bên đó lại không được nhỉ, cloudfale có ảnh hưởng gì không biết

  5. Nghia Huynh 3 comment

    Hi Ad, hiện tại mình đang bị lỗi này bạn có thể hỗ trợ giúp mình được không?
    —-
    nginx: [emerg] BIO_new_file(“/etc/nginx/ssl/willcert_cer_exp2020.crt”) failed (SSL: error:0200100D:system library:fopen:Permission denied:fopen(‘/etc/nginx/ssl/willcert_cer_exp2020.crt’,’r’) error:2006D002:BIO routines:BIO_new_file:system lib)

    1. Việt Phương Moderator

      Nginx đang không có quyền hạn với chứng chỉ
      1. Bạn chạy Nginx trên user nào?
      2. ls -al /etc/nginx/ssl ra kết quả gì
      3. Bạn có disable Selinux không sestatus
      4. Bạn dùng chứng chỉ tự kí đúng không? Selfsigned

      1. Nghia Huynh 3 comment

        Cảm ơn P, sau khi mình disable Selinux thì nginx của mình đã nhận đc 2 file key .crt và .key. Ngoài ra mình sử dụng CA bên thứ 3 chớ hok phải Selfsigned. Bạn cho mình hỏi thêm là nếu như mình tắt Selinux thì Nginx hoạt động có sao không, có cách nào cho Selinux allow Nginx không?

        1. Việt Phương Moderator

          Disable Selinux không sao nhé bạn. Còn vấn đề Selinux với Nginx mình không rõ rồi

  6. Hai Minh 1 comment

    Mình đã cài SSL Codomo mua từ namecheap trên hocvps (centos 6). Giờ mình renew thì nó kêu mình activate lại. Vậy ở quá trình renew thì mình có cần phải làm hết quá trình như bài này không hay chỉ cần thay ở phần nào thôi?

    1. Việt Phương Moderator

      Bạn renew xong thì tải chứng chỉ mới về tạo lại và thay thế vào vị trí chứng chỉ cũ là được

  7. Khai 2 comment

    Mình cấu hình SSL thành công nhưng mỗi lần restart server phải chạy lên 1 lệnh này mới dc.
    firewall-cmd –add-port=443/tcp
    . Bạn có cách nào chỉ giúp mình set defauft cho cổng 443 ko vậy? mình cảm ơn