CHIA SẺ:

Nếu server của bạn đang dùng HocVPS Script, hãy làm theo từng bước hướng dẫn này để cài đặt chứng chỉ SSL Let’s Encrypt miễn phí và được tự động gia hạn.

Lets Encrypt

Let’s Encrypt là một nhà cung cấp chứng chỉ số SSL (Certificate Authority) hoàn toàn miễn phí, được nhiều cá nhân và tổ chức tin dùng và đặc biệt không giới hạn.

Trong bài viết này, mình sẽ hướng dẫn các bạn từng bước cài đặt chứng chỉ Let’s Encrypt trên server cài HocVPS Script (LEMP Server, CentOS 6 và 7). Nếu dùng shared hosting như Hawk Host hoặc StableHost, DreamHost, SiteGround thì mọi chuyện còn đơn giản hơn nhiều vì Let’s Encrypt đã được tích hợp sẵn trong cPanel, chỉ cần vài click là cài đặt thành công. Mời bạn tham khảo hướng dẫn cài đặt Let’s Encrypt trong cPanel.

Let’s Encrypt là chứng chỉ SSL loại Domain Validation tức là sau khi cài bạn sẽ có thanh ổ khoá màu xanh trên trình duyệt. Ngoài Let’s Encrypt còn có PositiveSSL của Comodo cũng được rất nhiều người sử dụng.

Surf safely

1/ Cài đặt chứng chỉ Let’s Encrypt

Chúng ta sẽ clone mã nguồn của Let’s Encrypt về thư mục /opt/letsencrypt. Bước này thực hiện giống nhau trên CentOS 6 và 7.

# Install Git
yum -y install git

# Clone Let's Encrypt repository
git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

Để cài đặt Let’s Encrypt có rất nhiều cách, mình sẽ sử dụng option --standalone

Nếu đang dùng CloudFlare, bạn hãy tắt chức năng ẩn IP đi bằng cách click chuyển đám mây từ Vàng sang Xám nhé.
# Stop Nginx
service nginx stop

# Install Let's Encrypt
cd /opt/letsencrypt
./letsencrypt-auto certonly --standalone

Chờ một lúc để Let’s Encrypt cài đặt những công cụ cần thiết. Sau đó bạn hãy nhập địa chỉ email, rồi nhấn phím Enter.

Chấp nhận quy định bằng cách nhập a, rồi nhấn tiếp Enter.

Tiếp theo bạn nhập tên miền sẽ sử dụng chứng chỉ SSL, rồi nhấn Enter. Bước này bạn chỉ nhập phiên bản non-www và www của 1 domain hoặc subdomain. Khi muốn thêm tên miền/subdomain khác bạn chỉ cần chạy lại câu lệnh là xong, hãy xem hướng dẫn bên dưới.

Nếu không gặp vấn đề gì bạn sẽ gặp thông báo như bên dưới:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
 /etc/letsencrypt/live/hocvps.com/fullchain.pem. Your cert will
 expire on 2016-08-23. To obtain a new version of the certificate in
 the future, simply run Certbot again.
 - If you lose your account credentials, you can recover through
 e-mails sent to admin@hocvps.com.
 - Your account credentials have been saved in your Certbot
 configuration directory at /etc/letsencrypt. You should make a
 secure backup of this folder now. This configuration directory will
 also contain certificates and private keys obtained by Certbot so
 making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

 Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
 Donating to EFF: https://eff.org/donate-le

Lưu ý các thông tin mình bôi đỏ:

  1. /etc/letsencrypt/live/hocvps.com/: thư mục chứa các file chứng chỉ
  2. 2016-08-23: ngày hết hạn của chứng chỉ (90 ngày từ ngày cài)

1.1/ Cài đặt chứng chỉ SSL Let’s Encrypt cho nhiều website

Nếu cần bổ sung thêm domain/subdomain muốn cài đặt Let’s Encrypt, bạn chỉ cần chạy lại lệnh bên dưới rồi nhập domain vào:

# Install Let's Encrypt
cd /opt/letsencrypt
./letsencrypt-auto certonly --standalone

Lúc này domain mới sẽ có thêm một thư mục riêng chứa file chứng chỉ cần thiết.

2/ Cấu hình Nginx

Sau khi có các file chứng chỉ, 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à hocvps.com thì file cấu hình sẽ có đường dẫn là /etc/nginx/conf.d/hocvps.com.conf

Khi làm bạn nhớ thay tương ứng hocvps.com bằng domain của bạn nhé.

Tạo file DH parameters 2048 bit

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

Mở file cấu hình lên với nano

nano /etc/nginx/conf.d/hocvps.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;

+ Sau dòng server_name hocvps.com; thêm đoạn cấu hình SSL:

	# SSL
	ssl_certificate /etc/letsencrypt/live/hocvps.com/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/hocvps.com/privkey.pem;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
	ssl_prefer_server_ciphers on; 
	ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

        # 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 (https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security)
        add_header Strict-Transport-Security "max-age=31536000" always;

Redirect toàn bộ link www http sang https

Trong block server { ... } ở phía trên cùng:

+ Chuyển server_name www.hocvps.com; thành server_name hocvps.com www.hocvps.com;

+ Chuyển rewrite ^(.*) http://hocvps.com$1 permanent; thành rewrite ^(.*) https://hocvps.com$1 permanent;

Kết quả được như sau:

server {
	listen   80;
	server_name hocvps.com www.hocvps.com;
	rewrite ^(.*) https://hocvps.com$1 permanent;
}

Lúc này khi truy cập http://hocvps.com và http://www.hocvps.com sẽ tự động redirect sang https://hocvps.com

Redirect toàn bộ link www https sang https

Thêm mới block server { ... } ở trên cùng

server {
	listen   443 ssl http2;
	server_name www.hocvps.com;

	# SSL
	ssl_certificate /etc/letsencrypt/live/hocvps.com/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/hocvps.com/privkey.pem;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
	ssl_prefer_server_ciphers on; 
	ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

	rewrite ^(.*) https://hocvps.com$1 permanent;
}

Lúc này khi truy cập https://www.hocvps.com sẽ tự động redirect sang https://hocvps.com

Cấu hình SSL với port quản lý HocVPS Script Admin

Nếu bạn cài đặt SSL cho tên miền chính sử dụng HocVPS Script, cần thêm cấu hình SSL khi sử dụng port. Ví dụ khi cài đặt mình để port mặc định 2313.

Tìm block server { ... } có dòng listen 2313;

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

server {
	listen   2313 ssl http2;
 	access_log        off;
	log_not_found     off;
 	error_log         off;
    	root /home/hocvps.com/private_html;
	index index.php index.html index.htm;
    	server_name hocvps.com;
 	
        error_page  497 https://$host:2313$request_uri;
        # SSL
	ssl_certificate /etc/letsencrypt/live/hocvps.com/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/hocvps.com/privkey.pem;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
	ssl_prefer_server_ciphers on; 
	ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

	auth_basic "Restricted";
	auth_basic_user_file /home/hocvps.com/private_html/hocvps/.htpasswd;
	
	...

Lúc này link login HocVPS Script Admin sẽ là https://hocvps.com:2313

File cấu hình Nginx cuối cùng sẽ tương tự như sau:

server {
	listen   443 ssl http2;
	server_name www.hocvps.com;

	# SSL
	ssl_certificate /etc/letsencrypt/live/hocvps.com/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/hocvps.com/privkey.pem;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
	ssl_prefer_server_ciphers on; 
	ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

	rewrite ^(.*) https://hocvps.com$1 permanent;
}
server {
	listen   80;
	server_name hocvps.com www.hocvps.com;
	rewrite ^(.*) https://hocvps.com$1 permanent;
}
server {
	listen   443 ssl http2;
		
	access_log off;
	# access_log /home/hocvps.com/logs/access.log;
	error_log off;
    	# error_log /home/hocvps.com/logs/error.log;
	
    	root /home/hocvps.com/public_html;
	index index.php index.html index.htm;
    	server_name hocvps.com;
	
	# SSL
	ssl_certificate /etc/letsencrypt/live/hocvps.com/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/hocvps.com/privkey.pem;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
	ssl_prefer_server_ciphers on; 
	ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

        # 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 (https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security)
        add_header Strict-Transport-Security "max-age=31536000" always;
 
    	location / {
		try_files $uri $uri/ /index.php?$args;
	}
	
	# Custom configuration
	include /home/hocvps.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/hocvps.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/hocvps.com/public_html$fastcgi_script_name;
		include /etc/nginx/fastcgi_params;
                allow 127.0.0.1;
                deny all;
    	}
	location ~ /\. {
		deny all;
	}
        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   2313 ssl http2;
 	access_log        off;
	log_not_found     off;
 	error_log         off;
    	root /home/hocvps.com/private_html;
	index index.php index.html index.htm;
    	server_name hocvps.com;
        error_page 497 https://$host:2313$request_uri;
	# SSL
	ssl_certificate /etc/letsencrypt/live/hocvps.com/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/hocvps.com/privkey.pem;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
	ssl_prefer_server_ciphers on; 
	ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
 
	auth_basic "Restricted";
	auth_basic_user_file /home/hocvps.com/private_html/hocvps/.htpasswd;
	
	location / {
		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/hocvps.com/private_html$fastcgi_script_name;
    	}
	
	location ~ /\. {
		deny all;
	}
}

Kiểm tra lại cấu hình Nginx

nginx -t

Phản hồi như sau là ok:

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

Khởi động lại Nginx

service nginx restart

Giờ truy cập vào domain để tận hưởng thành quả thôi.

Cai dat chung chi Let's Encrypt thanh cong

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.

3/ Cập nhật cấu hình trong Google Search Console và Analytics

Phần này bắt buộc phải làm, mình đã có hướng dẫn chi tiết từng bước trên Canh Me, mời bạn tham khảo tại link này.

4/ Tự động gia hạn Let’s Encrypt

Chứng chỉ Let’s Encrypt chỉ sử dụng được trong vòng 90 ngày và bạn cần phải chạy lại dòng lệnh bên dưới để gia hạn.

service nginx stop
/opt/letsencrypt/letsencrypt-auto renew
service nginx start

Tuy nhiên, mình sẽ hướng dẫn các bạn cấu hình để tự động gia hạn chứng chỉ này với crontab, như vậy chúng ta sẽ sử dụng SSL miễn phí trọn đời mà không cần phải lo về việc gia hạn nữa.

Mở file cấu hình crontab:

EDITOR=nano crontab -e

Copy và paste đoạn code bên dưới vào cửa sổ terminal:

30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew --pre-hook "service nginx stop" --post-hook "service nginx start" >> /var/log/le-renew.log

Nhấn Ctrl+O, Enter để lưu và Ctrl+X để thoát. Bạn nhận được thông báo sau là thành công

crontab: installing new crontab

crontab trên sẽ tự động chạy lệnh gia hạn Let’s Encrypt vào lúc 2h30 sáng thứ 2 mỗi tuần. Trước khi gia hạn sẽ stop Nginx, sau đó sẽ start lại ngay lập tức. Như vậy, mức ảnh hưởng sẽ được hạn chế tối đa.

Nếu chứng chỉ hết hạn trong vòng 30 ngày sẽ tự động được gia hạn.

Vậy là xong, bạn có thể yên tâm sử dụng Let’s Encrypt rồi đấy.

Chúc bạn thành công.

Lưu ý:

  • Bạn phải chuyển toàn bộ link image, js, css từ http:// sang https:// thì mới có biểu tượng màu xanh như demo. View-source để xem.

429 Comments

  1. Luân Trần Admin

    Mình mới update lại cấu hình SSL tối ưu hơn, fix bug nữa, mời các bạn tham khảo.

    1. tncong 10

      chả biết bác update chỗ nào, trước làm rồi thì giờ sửa lại đoạn nào ấy chứ 🙁

        1. tncong 10

          e làm theo bài của bác khoảng hơn 1 tháng trước, giờ bác update cái gì thì e cũng chịu luôn 😀

    2. tien léo 9

      giờ phải sửa cái gì mới vậy bác luân ơi. e cài của bác từ hai tháng trước rồi vẫn chạy ok mà nhỉ @@!

      1. Việt Phương Moderator

        Hiện mình đã update thêm 1 số cấu hình để bảo mật hơn với HTTPS. Bạn chạy thêm DH Parameters rồi sửa cấu hình Nginx Conf như hướng dẫn nhé

  2. giang 5

    khi mình làm đến bước này # Stop Nginx
    service nginx stop

    # Install Let’s Encrypt
    cd /opt/letsencrypt
    ./letsencrypt-auto certonly –standalone

    nó hiện -bash: cd: /opt/letsencrypt: No such file or directory
    home]# ./letsencrypt-auto certonly –standalone

    ko hiện lên bảng nhập mail , sever ko mở nữa , làm sao để sv hoạt động lại nhỉ ?

    1. Việt Phương Moderator

      Đoạn clone mã nguồn không thành công nên không có file nào ở opt/letsencrypt rồi. Bạn chạy đoạn clone báo gì?

  3. thienthangautruc 5

    Mình chuyển lên HTTPS thành công rồi, nhưng vì 1 số lý do bên quảng cáo họ ko hỗ trợ nên muốn chuyển ngược lại về ban đầu http thì làm thế nào bạn ơi.???
    – Xin giúp đỡ, Thank!

    1. Việt Phương Moderator

      Bạn sửa cấu hình file Nginx domain về ban đầu là ok. Bao gồm xóa phần SSL, sửa không redirect về https

  4. hai 2

    An unexpected error occurred:
    ConnectionError: HTTPSConnectionPool(host=’acme-v01.api.letsencrypt.org’, port=443): Max retries exceeded with url: /directory (Caused by NewConnectionError(‘: Failed to establish a new connection: [Errno -2] Name or service not known’,))
    Please see the logfiles in /var/log/letsencrypt for more details.

    cmd
    ./letsencrypt-auto certonly –standalone

    đang bị như này và nó ko tự gia hạn nên giờ https ko wwork đc

    1. Việt Phương Moderator

      Bạn stop nginx rồi chạy # /opt/letsencrypt/letsencrypt-auto renew rồi restart nginx xem được không?

  5. Thai 4

    Ad ơi sau khi cài xong thì chỉ vào được trang chính HocVPS thôi còn filemanager, phpmyadmin… không vào được ERR_CONNECTION_TIMED_OUT

  6. Kien Nguyen 4

    Anh Luân ơi, cho e hỏi chút với, em cài Let’s Encrypt thành công tại port web 443 : https://vspush.tk/ nhưng có một ứng dụng của em ở port 8443 thì lại không có SSL mà chỉ là self-certificate. (https://vspush.tk:8443/ag-push/), mình có cách nào để active SSL cho cả port 8443 này không anh?

    1. Việt Phương Moderator

      Ứng dụng của bạn có khai báo ở file cấu hình Nginx của domain không? Nếu có thì bạn khai báo ở Nginx conf, force dùng SSL cho 1 port (như HocVPS port). Tham khảo đoạn port 2313 ở file cấu hình trên
      Phần error_page 497 https://$host:2313$request_uri; là force SSL ở 1 port cụ thể

  7. Tấn Vũ 2

    Hixxx, chuyển lên HTTPS đc 3-4 hôm thành công
    – Đến hôm nay thì hầu hết các từ khóa đang TOP 1-2-3 bay về 5x 6x, not in 100
    – Cách chuyển này bị mất thứ hạng từ khóa à các bác 🙁 Khổ em rồi.

    1. Luân Trần Admin

      Chắc mới thay đổi nên chưa định, mình chuyển HTTPS chỉ thấy rank lên thôi chứ không có xuống.

      1. Tuấn Vũ 2

        Cái này chắc hên xui 🙁
        – Thằng bạn chuyển lên https không sao, từ khóa còn lên. Site mình chuyển lên thì bay top. Lại phải quay lại như cũ. hix

          1. Bạc Đỏ 33

            Hix quét không phát hiện ra mã độc/virus nào cả bạn ạ. Có khi xóa toàn bộ code đi cài lại web nhỉ

          2. Việt Phương Moderator

            Google báo 1 số page chuyển hướng visitors đến settlemyfine.com và vertekoasys.com đó. Bạn kiểm tra xem

          3. Bạc Đỏ 33

            Mình tìm 2 keyword này trong toàn bộ code mà vẫn ko thấy. Đã report an issue đến google chrome :))

  8. Hùng Mạnh 2

    Cũng bị tương tự Tấn Vũ. Bác ad hướng dẫn chuyển ngược redirect từ https về http với.
    – Vì sau khi chuyển lên https google đã index rồi, Nếu chỉ sửa file nginx để về http thì bây giờ search google ra kết quả https không truy cập được 🙁
    – Help,! Gấp gấp, web mình mất hết traffic rồi.

      1. Hùng Mạnh 2

        Tình hình là mình sửa cái
        server {
        listen 443 ssl http2;
        rewrite ^(.*) http//domain.com$1 permanent;
        }

        Lại phải redirect về http vì thằng google nó index https rồi. Người dùng search google sẽ nhận đc kết quả https và ko tự chuyển về http đc nên lỗi truy cập.
        – Sau 1 ngày chuyển ngược về http ban đầu, từ khóa đã có dấu hiệu quay lại.
        – Đã tạm ổn. Nhưng giờ index vừa có http vừa có https. Hy vọng nó xóa béng thằng https đi thì ngon. Thôi ko chuyển nữa.

        1. Việt Phương Moderator

          Về lâu dài mình vẫn nghĩ nên chuyển sang giao thức SSL. SSL hay HTTPS trong tương lai sẽ là giao thức chuẩn, khi các trình duyệt đang có những cải tiến để giúp người dùng dễ dàng phân biệt được website nào được bảo mật, website nào không. Thậm chí, Google còn ưu tiên vị trí kết quả tìm kiếm với những site có sử dụng SSL.

  9. Cuong Truong Van 1

    Luân cho hỏi là sử dụng ssl này thì không thể bật chức năng ẩn ip trên cloudflare
    Có cách nào sử dụng đc ssl mã vẫn dùng được cloudflare không?

    1. Việt Phương Moderator

      Hiện tại bạn chạy lệnh thủ công gia hạn nhé. Mình đang nghiên cứu phương pháp khác ko cần stop nginx

      1. tien léo 9

        hiện tại vẫn phải chạy ra hạn = lệnh tay à bác. ko tự động gia hạn như trên bài viết được à bác ơi!

    2. Việt Phương Moderator

      Bạn sửa crontab thành như sau xem hoạt động không:
      30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew --pre-hook "service nginx stop" --post-hook "service nginx start" >> /var/log/le-renew.log

    3. Việt Phương Moderator

      Hiện tại mình đã update crontab gia hạn tự động. Bạn áp dụng có gì feedback lại nhé. Cám ơn 🙂

  10. Hùng 3

    Chào a
    E làm theo hướng dẫn của anh thì bị lỗi sau khi Kiểm tra lại cấu hình Nginx

    nginx: [emerg] invalid parameter “http2” in /etc/nginx/conf.d/ninxanh.com.conf:2
    nginx: configuration file /etc/nginx/nginx.conf test failed

    Và không khởi động lại được Nginx

    Anh giúp em với,
    Cảm ơn anh

    1. Việt Phương Moderator

      Em kiểm tra xem thư mục nginx conf có những file nào: ls -al /etc/nginx/conf.d/
      Em cho anh file nginx cấu hình của em(file ninxanh.com.conf). Paste qua http://pastebin.com cho gọn nhé

      1. Loc 8

        Chào mod,

        Mình cũng bị lỗi tương tự bạn này. Bạn xem giúp mình cái được không.

        1. Việt Phương Moderator

          Cung cấp cho mình nội dung của nginx -tnginx -v
          Chắc do phần http2 bạn khai báo trong nginx conf file. Cung cấp mình cả nội dung của file conf đó nhé. Paste qua http://pastebin.com/ cho gọn

  11. Phung 10

    Mình cài 2 web site trên 1 VPS , khi check nginx -t thì báo lỗi

    nginx: [warn] conflicting server name “a.com” on 0.0.0.0:443, ignored
    nginx: [warn] conflicting server name “b.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

    làm sao fix vậy Luân ?

    1. Việt Phương Moderator

      Lỗi này bị do khai báo trùng servername ở port 443. Bạn kiểm tra Nginx conf của 2 site xem, đặc biệt phần block ssl 443
      Cho mình nội dung 2 file ra mình xem cho, paste qua http://paste2.org/ cho gọn

  12. Fususu 13

    Làm sao để check được hạn hiện tại nhỉ ?

    Mà em gõ lệnh thử gia hạn nó báo lỗi…

    ——–
    /opt/letsencrypt/letsencrypt-auto renew
    ———

    /root/.local/share/letsencrypt/lib/python2.6/site-packages/cryptography/__init__.py:26: DeprecationWarning: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of cryptography will drop support for Python 2.6
    DeprecationWarning
    Saving debug log to /var/log/letsencrypt/letsencrypt.log

    ——————————————————————————-
    Processing /etc/letsencrypt/renewal/fususu.com.conf
    ——————————————————————————-
    Cert is due for renewal, auto-renewing…
    Renewing an existing certificate
    Performing the following challenges:
    tls-sni-01 challenge for fususu.com
    tls-sni-01 challenge for http://www.fususu.com

    ——————————————————————————-
    Port 443 is already in use by another process. This will prevent us from binding
    to that port. Please stop the process that is populating the port in question
    and try again. For automated renewal, you may want to use a script that stops
    and starts your webserver. You can find an example at
    https://certbot.eff.org/docs/using.html#renewal . Alternatively you can use the
    webroot plugin to renew without needing to stop and start your webserver.
    ——————————————————————————-
    Cleaning up challenges
    Attempting to renew cert from /etc/letsencrypt/renewal/fususu.com.conf produced an unexpected error: At least one of the required ports is already taken.. Skipping.

    All renewal attempts failed. The following certs could not be renewed:
    /etc/letsencrypt/live/fususu.com/fullchain.pem (failure)
    1 renew failure(s), 0 parse failure(s)
    ————–

    1. Fususu 13

      À do em chưa stop nginx… vừa renew thành công rồi.
      Nhưng trước đó khi em check trong log thì mấy cái tự động gia hạn lúc 2h sáng đều báo lỗi hết, tới hôm nay check thì chứng chỉ còn 12 ngày… nên phải gia hạn thủ công gấp 🙁
      file le-renew.log toàn báo thế này

      ——————————————————————————-
      Processing /etc/letsencrypt/renewal/fususu.com.conf
      ——————————————————————————-

      The following certs are not due for renewal yet:
      /etc/letsencrypt/live/fususu.com/fullchain.pem (skipped)
      No renewals were attempted.

      1. Việt Phương Moderator

        Hiện tại mình đã update crontab gia hạn tự động. Bạn áp dụng có gì feedback lại nhé. Cám ơn 🙂

    1. Việt Phương Moderator

      Không dùng song song được ẩn IP của CF nếu bạn dùng SSL Let’s Encrypt rồi.

  13. Nghia 18

    Hi ad, như bài ở trên chỉ hướng dẫn đối vs domain non-www, vậy mình muốn giữ phần www thì có thể đổi ngược phần cấu hình nginx ở trên lại được không nhỉ?

    1. Việt Phương Moderator

      Máy bạn không đủ bộ nhớ để thiết lập lúc cài đặt. Bạn kiểm tra lại ram, memory xem

      1. Benzema 3

        Mình đã cài xong hết rồi, nhưng giờ gõ domain lên trình duyệt lại báo mất kết nối 🙁

          1. Benzema 3

            Ok, mình đã sửa lại và vào được bình thường rồi
            cơ mà link web của mình ko có biểu tượng cái khóa như nhiều trang khác, vào trong link wp-admin mới thấy
            Mình đã cài cả Really Simple SSL như trong bài viết canhme
            có cần phải cài thêm gì ko 🙁

          2. Việt Phương Moderator

            WP thì Really Simple SSL là ok nhé, chắc còn link ảnh, css bạn chưa chuyển hết

          3. Benzema 3

            Đúng là còn 1 cái ảnh link http bạn ạ

            mình thay xong là hiện ổ khóa xanh lè luôn

            Bài viết rất hữu ích và support rất nhiệt tình

            cảm ơn bạn nhiều nhé 😀

  14. Thầy lang Kiên 2

    Các bạn cho mình hỏi là đã có bạn nào thử cài let’s enscrypt cho domain chính và vài domain addons. Sau đó cài positive ssl cho 1 domain addon khác chưa?
    Server Centos 7.5 dùng hocvps ấy.

    1. Việt Phương Moderator

      Mình nghĩ addon domain chỉ là gọi trên hosting. Còn ở VPS nó vẫn là 1 domain bình thường chứ?

        1. Việt Phương Moderator

          SSL cài theo domain không phải theo IP bạn à. Bạn có thể test bằng deploy 1 VPS mới, cài 2 site kèm let’s encrypt ssl vào đó. SSL free cũng dễ mà 🙂

  15. Nghia 18

    Sau khi caì đặt chứng chỉ https thì site mình ko kết nối nữa!
    ERROR: SQLSTATE[HY000] [2002] Connection refused
    Lỗi nằm ở đâu nhỉ? Mình xài hocvps

    1. Việt Phương Moderator

      Lỗi này ở việc database không thể truy cập, có thể MySQL bị tắt. Bạn vào MySQL/PHPMyAdmin kiểm tra xem

Comment của bạn

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