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.
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 và Standard SSL DV của GoDaddy. cũng được rất nhiều người sử dụng.
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/ Cài đặt chứng chỉ Let’s Encrypt
1.2/ Phát hành chứng chỉ SSL Let’s Encrypt cho domain
3/ Cập nhật cấu hình trong Google Search Console và Analytics
4/ Tự động gia hạn Let’s Encrypt
1/ Cài đặt chứng chỉ Let’s Encrypt
1.1/ Cài đặt certbot
yum -y install certbot
1.2/ Phát hành chứng chỉ SSL Let’s Encrypt cho domain
Để phát hành chứng chỉ SSL Let’s Encrypt cho domain có rất nhiều cách, mình sẽ sử dụng option --standalone
# Stop Nginx service nginx stop # Issue SSL Let's Encrypt certbot 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 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 đỏ:
- /etc/letsencrypt/live/hocvps.com/: thư mục chứa các file chứng chỉ
- 2016-08-23: ngày hết hạn của chứng chỉ (90 ngày từ ngày cài)
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:
# Stop Nginx service nginx stop # Install Let's Encrypt certbot 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é.
Lưu ý: Chỉ cấu hình Nginx khi bạn đã phát hành thành công chứng chỉ SSL.
Tạo file DH parameters 2048 bit (tạo một lần duy nhất trên VPS)
mkdir /etc/nginx/ssl/ openssl dhparam 2048 -out /etc/nginx/ssl/dhparam.pem
Chỉnh sửa cấu hình domain bằng Nano Editor
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 default_server;
+ 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 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.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 https://hocvps.com và http://www.hocvps.com sẽ tự động redirect sang https://hocvps.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.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
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 màu vàng ẩn IP thì không làm bước này mà sử dụng link
http://IP:port
để vào khu vực quản trị HocVPS Script Admin.
Ví dụ khi cài đặt mình để port mặc định 2018
thì sẽ tìm block cuối cùng server { ... }
trong file cấu hình domain .conf có dòng listen 2018;
Cấu hình SSL cho port HocVPS tương tự như bên dưới:
server { listen 2018 ssl; 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://$server_name:$server_port$request_uri; 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 truy cập HocVPS Script Admin qua https://domain.com:2018
File cấu hình Nginx cuối cùng sẽ tương tự như sau:
server { listen 443 ssl; 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 default_server; # 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 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; } # 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/hocvps.com/logs/nginx_error.log; root /home/hocvps.com/private_html; index index.php index.html index.htm; server_name hocvps.com; error_page 497 https://$server_name:$server_port$request_uri; 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 / { 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/hocvps.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
_ Để 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
- Không thể gia hạn tự động SSL Let’s Encrypt. Gia hạn thủ công 3 tháng 1 lần.
_ Cấu hình HTTP/2 tham khảo Kích hoạt HTTP/2 với Nginx.
_ Tham khảo thêm Tối ưu HTTPS trên Nginx.
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.
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. Xem thêm hướng dẫn.
- 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 tự động Really Simple SSL, 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.
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 để không làm ảnh hưởng đến thứ hạng từ khóa trên Google của website, 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.
certbot renew --pre-hook "service nginx stop" --post-hook "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 * * * /usr/bin/certbot 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 hàng ngày và kiểm tra xem đã hết hạn chưa và tiến hành gia hạn. Trước khi gia hạn sẽ stop Nginx, sau đó sẽ start lại ngay lập tức. Như vậy, gần như không ảnh hưởng gì cả đến website.
Vậy là xong, bạn có thể yên tâm sử dụng Let’s Encrypt rồi đấy.
Lưu ý: Nếu chứng chỉ không tự động gia hạn, kiểm tra theo mục 6.Một số vấn đề gặp phải
5/ Xóa chứng chỉ Let’s Encrypt
Khi bạn không sử dụng Let’s Encrypt nữa, chuyển qua sử dụng của nhà cung cấp khác và muốn xóa chứng chỉ Let’s Encrypt đã cài, hãy sử dụng lệnh bên dưới:
# Remove Let's Encrypt certbot delete
Tiếp theo nhập số thứ tự chứng chỉ tương ứng với tên miền bạn muốn xóa, nhấn Enter là mọi thứ sẽ được dọn dẹp sạch sẽ.
6/ Một số vấn đề gặp phải
Đến ngày hết hạn mà chứng chỉ Let’s Encrypt không tự động gia hạn, mặc dù crontab vẫn chạy, kiểm tra log không thấy thông tin gì đặc biệt? Chạy lệnh gia hạn thủ công thì lại được. Theo kinh nghiệm của mình thì vấn đề ở mã nguồn Let’s Encrypt hoặc PATH service
Đối với vấn đề mã nguồn, chỉ cần clone lại bộ code của Let’s Encrypt là sẽ giải quyết được vấn đề.
# cd /opt/letsencrypt && git pull
Nếu gặp thông báo lỗi thì sử dụng lệnh này: # cd /opt/letsencrypt && git reset --hard && git pull
Đối với vấn đề PATH service, các bạn chú ý những dấu hiệu sau:
Kiểm tra nội dung /var/spool/mail/root
thấy:
Failed to find executable /usr/sbin/service in PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin Unable to find pre-hook command /usr/sbin/service in the PATH. (PATH is /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
Kiểm tra nội dung /var/log/cron
thấy cronjob vẫn chạy hàng ngày. Kiểm tra nội dung /var/log/le-renew.log
và bên trong /var/log/letencrypt
không thấy gì khả nghi.
– Nguyên nhân: service không nằm trong PATH, vấn đề này gặp ở 1 số VPS.
# whereis service service: /sbin/service /usr/share/man/man8/service.8.gz
# echo $PATH /usr/bin:/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
Có thể thấy, lệnh service nằm trong /sbin/service
, không thuộc biến môi trường PATH. Crontab chỉ tìm /usr/sbin/service
và không thấy.
– Giải pháp::
Bạn cần sử dụng đường dẫn cụ thể để chạy lệnh service trong crontab. Vị trí sẽ tùy thuộc vào từng hệ thống, kiểm tra bằng # whereis service
.
Ví dụ, khi là /sbin/service
thì câu lệnh chèn vào crontab sẽ như sau:
30 2 * * * certbot renew --pre-hook "/sbin/service nginx stop" --post-hook "/sbin/service nginx start" >> /var/log/le-renew.log
– Dấu hiệu: Đến ngày hết hạn thì không thể renew, với thông báo:
Renewal configuration file /etc/letsencrypt/renewal/hocvps.com.conf produced an unexpected error: [('PEM routines', 'PEM_read_bio', 'no start line')]. Skipping. No renewals were attempted.
Hoặc expected /etc/letsencrypt/live/hocvps.com/cert.pem to be a symlink
– Nguyên nhân: Bộ chứng chỉ bị corrupt khiến Let’s Encrypt không thể đọc và renew.
Kiểm tra nội dung cert và private key:
# openssl x509 -noout -text -in /etc/letsencrypt/live/hocvps.com/cert.pem unable to load certificate 3077703404:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE # openssl rsa -noout -text -in /etc/letsencrypt/live/hocvps.com/privkey.pem -check unable to load Private Key 3078170348:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: ANY PRIVATE KEY
Kiểm tra MD5 của cert và key (trùng nhau là ok):
# openssl x509 -noout -modulus -in fullchain.pem | openssl md5 # openssl rsa -noout -modulus -in privkey.pem | openssl md5
Kiểm tra danh sách cert trong VPS
# certbot certificates Found the following certs: Certificate Name: hocvps.com Domains: hocvps.com www.hocvps.com Expiry Date: 2018-05-27 09:15:09+00:00 (VALID: 89 days) Certificate Path: /etc/letsencrypt/live/hocvps.com/fullchain.pem Private Key Path: /etc/letsencrypt/live/hocvps.com/privkey.pem -------------------------------------------------------------------------------
– Giải pháp: xóa hoàn toàn cert cũ rồi issue lại cert mới (như mục 1.)
# cd /opt/letsencrypt # ./certbot delete --cert-name hocvps.com Saving debug log to /var/log/letsencrypt/letsencrypt.log ------------------------------------------------------------------------------- Deleted all files relating to certificate hocvps.com. -------------------------------------------------------------------------------
– Nguyên nhân & Dấu hiệu:
VPS không thể kết nối ra ngoài qua giao thức HTTPS, khi đó cũng không thể issue/renew các chứng chỉ SSL. Ví dụ không thể truy cập qua HTTPS
# curl https://google.com
curl: (77) Problem with the SSL CA cert (path? access rights?)
#curl https://github.com/letsencrypt/letsencrypt
curl: (35) SSL connect error
– Giải pháp:
Đối với lỗi (77): cài đặt lại chứng chỉ trong VPS:
Bước 1: Di chuyển/Đổi tên chứng chỉ cũ
- CentOS6 chứng chỉ lưu tại
/etc/ssl/certs/ca-bundle.crt
- CentOS7 chứng chỉ lưu tại
/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
Bước 2: Cài đặt lại chứng chỉ. Khi đó, bạn có thể curl HTTPS và issue/renew chứng chỉ bình thường.
# yum reinstall -y ca-certificates
– Đối với lỗi (35) – Cập nhật NSS
# yum update nss -y
Chúc bạn thành công.
Cài ssl hơi bị rối. Ad có thể làm cho đơn giản cho người mới đễ sử dụng.
Đây là phương pháp tối ưu nhất dành cho VPS rồi bạn nhé. Nếu bạn đơn giản cấu hình SSL thì sẽ không đảm bảo hoàn toàn
Mình đang dùng hosting cũ và dùng SSL của comodo giờ cài lại trên hocvps script như thế nào nhỉ ?
Với VPS thì bạn cài SSL Comodo theo hướng dẫn này nhé https://hocvps.com/cai-dat-chung-chi-ssl/
Hi ad,
Mình làm theo hướng dẫn thì gặp lỗi này ? Cho hỏi nó là j vậy ạ.
Problem binding to port 80: Could not bind to IPv4 or IPv6.
Cảm ơn ad.
Bạn stop Nginx chưa?
Đã stop rồi ad
Và cả 2 record domain và www domain bạn đều đã trỏ về ip VPS? Và nếu dùng Cloudfare thì đã ngắt mây vàng?
Admin ơi, mình cài thêm chứng chỉ SSL cho tên miền thứ 2 trong vps của mình chạy Script Hocvps.
Kết quả ra như thế này. Admin giúp mình với
[root@vultr home]# nginx -t
nginx: [warn] conflicting server name “tdera.com” on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name “www.tdera.com” on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name “tdera.com” on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name “www.tdera.com” on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name “www.tdera.com” on 0.0.0.0:443, ignored
nginx: [warn] conflicting server name “tdera.com” on 0.0.0.0:443, ignored
nginx: [warn] conflicting server name “www.tdera.com” on 0.0.0.0:443, ignored
nginx: [warn] conflicting server name “tdera.com” on 0.0.0.0:443, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] open() “/home/1.tdera.com/logs/access.log” failed (2: No such file or directory)
nginx: configuration file /etc/nginx/nginx.conf test failed
1. Trùng lặp. Trong thư mục /etc/nginx/conf.d có hơn 2 đoạn cấu hình tderacom:80. Tương tự với mấy dòng dưới. Bạn xem trùng ở đâu thì xóa đi. Có thể bạn làm tận 2 file cấu hình cho domain này
2. Không tìm thấy log của 1.tdera.com.Bạn nếu tạo domain bằng hocvps menu thì cũng phải xóa bằng hocvps menu nhé
Ok cảm ơn admin, mình sửa được đoạn lỗi bên trên rồi.
Còn 1 lỗi nữa mình muốn hỏi. Trang web mình là tdera.com. Khi mình gõ http://www.tdera.com thì không tự chuyển sang tên miền chính của mình
Block thứ 2 nano mình cấu hình như thế này
server {
listen 80;
server_name tdera.com http://www.tdera.com;
rewrite ^(.*) https://tdera.com$1 permanent;
}
Bạn đã trỏ A Record của www về IP VPS chưa? Mình check thì chưa tạo thì phải, vẫn ở namecheap. Có mỗi domain là trỏ về IP VPS
mình gặp lỗi khi cài ssl
https://i.imgur.com/p68XT1t.png
có thể xử lý giúp mình dc k ạ
Bạn làm như bình thường thôi, nhập email
m đã cài xong và không xuất hiện ssl trên domain của m
https://i.imgur.com/4NEksaY.png
Bạn đã lưu lại và restart Nginx chưa
mình đã lưu và restart vps nhưng k xuất hiện ssl
lúc cài có bị lỗi
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Nếu cài lỗi –> Cert không được issue –> Nginx bạn còn lỗi cơ
Đây Nginx bạn không lỗi. Cho mình nội dung của
service nginx restart && nginx -t
ls -al /etc/letsencrypt/live/
ls -al /etc/nginx/conf.d
Và nội dung Nginx Conf của site bạn vừa cài SSL
https://i.imgur.com/e9IubSm.png
trên file conf không có gì hết, mình tự điền thêm vào, mấy lần trươc có để sửa lại mà giờ không có gì hết luôn
Nếu không có gì hết thì mình nghĩ file cấu hình Nginx Webserver cho domain đó của bạn không phải file ý. Nên việc bạn sửa file đó không có tác dụng gì. Bạn hệ thống control panel gì? Kết quả của
ls -al /etc/nginx
https://i.imgur.com/irJfpE4.png
m xài centos 7 x64
Mình thấy 2 file domain và domain.conf. Bạn sửa file nào? Cho mình full nội dung cả 2 file đó
à được rồi, cám ơn bạn, mình sửa nhầm file domain, đúng là phải domain.conf
làm phiền bạn rồi 😀
Nếu thế thì bạn đã tạo mới file domain. Xóa file ý đi bạn nhé
ok mình đã xử lý dc. cảm ơn bạn nhiều !
ad cho em hỏi chút
site của em dns qua cloudflare
em đã cài ssl như bài hướng dẫn của ad và dùng rất ngon. Nhưng nếu em bật CDN của cloudflare và ssl của cloudflare thì lỗi không truy cập được trang ! nhưng nếu em tắt đi thì lại bình thường. Giờ em đang muốn sử dụng CDN của cloudflare nhưng không thể bật được? mong ad giúp đỡ
Bạn bật full strict SSL của Cloudfare nhé
Khi nhập email xong nó báo time out Luân ạ, mình thử xóa vps cài lại đều bị.
http://prntscr.com/hybzb6 Mình test vẫn bình thường. Có thể thời điểm đó bạn connect không tới được server của Let’s Encrypt. Bạn thử lại nhé
Một VPS mình cài 3 domain chung 1 IP, đã cài ssl cho cả 3, vậy ở bước 4 mình chỉ làm 1 lần là áp dụng cho cả 3 domain trên luôn phải không ad
Đúng rồi bạn nhé
Mod ơi, mình gia hạn copy cả list domain thì nó chỉ rênew cái domain cuối cùng, còn mấy domain còn lại trong list thì k renew
Mình đang update lại cái crontab hi vong tự rênew đc chứ hiện giờ toàn ngòi copy enterr từng cái domain một, oải quá
Lệnh renew thủ công cũng sẽ chỉ renew những chứng chỉ nào hạn còn <30 ngày thôi bạn nhé
/opt/letsencrypt/letsencrypt-auto renew –pre-hook “service nginx stop” –post-hook “service nginx start”
ok, mình sẽ áp dụng cách này.
Cho mình hỏi thêm là tự dưng cái port phpmyadmin của minh không vào đc, vô ssh, ftp và website vẫn hoạt động bt. Check chỗ nào giờ b nhỉ?
Cho mình nội dung Nginx Conf của bạn, domain chính
Bạn chạy chuỗi lệnh sau, Rồi đăng nhập xem được không
Mà mình test thấy đăng nhập đc mà nhỉ: http://prntscr.com/hvv6re
Xin lỗi mình nhâm giữa 2 vps đang bị lỗi. Mod giúp m luôn với:
Cái trên vừa rồi là bị redirect sang site khác:
gõ https://invipcard.net nó ra luôn site https://inngocmai.com
Tý mình gửi file conf của vps lỗi trên nha. Cho đỡ lẫn
Thế bạn phải gửi Nginx Conf cả 2 cái mới được. Paste qua pastebin cho gọn nhé
GIờ mình vô nó bị điên mất r
Reboot trong panel ramnode đc nhưng vps k vô dc
Status: Waiting to retry…
Status: Connecting to 168.235.92.222:2222…
Response: fzSftp started, protocol_version=8
Command: open “root@168.235.92.222” 2222
Error: Connection refused
Error: Could not connect to server
Bạn kiểm tra đăng nhập quả web console bên Ramnode cung cấp xem được không để xem vấn đề từ đâu nhé.
Và mình truy cập thì có thấy bị redirect gì đâu? Nếu ý bạn là mỗi phần domain_chính:2310 thì thực hiện fix như mình bảo đó
3 DOmain bị redỉrect ssl dây Phương nha:
https://pastebin.com/0F5aFEmn
gõ https://invipcard.net nó ra luôn site https://inngocmai.com
Nó vẫn nhảy qua mà Phương ? :((
Thì bạn có cài HTTPS cho invipcard.net đâu mà đòi truy cập qua HTTPS? Nên tất nhiên nó sẽ redirect về 1 HTTPS khác trong server rồi
Bạn tự gõ HTTPS chứ chỉ gõ domain thì đã xử lý qua HTTP 80 rồi
Mình chạy lệnh cài rồi mà?
Có cần vô file conf kia chỉnh như bài trên hướng dẫn k Phương?
Nginx Conf bạn paste ra thì invipcard.net có cài gì đâu? Bạn đọc đầy đủ bài hướng dẫn nhé
Ahuhu, char hiểu sao giờ nginx mình không khởi đọng được luôn rồi. Nghichj sai cái gì k biết nữa :((
[root@THANG4 letsencrypt]# service nginx start
Redirecting to /bin/systemctl start nginx.service
Job for nginx.service failed because the control process exited with error code. See “systemctl status nginx.service” and “journalctl -xe” for details.
Bạn làm như nó bảo đó
systemctl status nginx.service -l
và
nginx -t
Đây Phương:
https://pastebin.com/4P9vPSYY
Nãy m có làm 1 cái là copy cái nội dung file conf ở trên về cho file conf của invipcard.net và đổi thông tin domain, Port của mình.
nginx: [emerg] open() “/home/incardvisit.comm/logs/access.log” failed (2: No such file or directory)
Không tồn tại file nào như trên nhưng trong cấu hình Nginx Conf lại khai báo nó.
Nếu bạn thêm domain lỗi mà xóa thủ công thì phải xóa luôn của Nginx Conf domain đó nhé
ôi chán thật, mình vừa move cái domain về đó :((
Cái https://invipcard.net/ vô ngon lành rồi.
Mình paste lại cái vụ VPS đầu tiên nữa Phương giúp nốt nha.
168.235.92.222 mình vô vnc của ramnode mà không đăng nhập đc. K hiểu do gì nhỉ?
https://prnt.sc/hvvvtm
Login incorrect thì chỉ có sai pass thôi bạn nhé. Bạn liên hệ support ticket xem
Mình change liên tục mấy lần, để cái pass như trong ảnh rồi. Gõ lại từng chữ với user root mà vẫn lỗi. Ticket thì nó bảo k hỗ trợ. Bực thế k biết nữa. Giờ không khởi động đc nginx nữa 🙁
VPS1 : Thế thì bạn chỉ có reinstall VPS và cài lại thôi
VPS2 : Fixx Nginx như mình đã bảo
reinstall lại thì mất hết dữ liệu à? :((
Uhm bạn. Mình kiểm tra IP thì cả port 22 và 2222 của VPS đều đã đóng. Truy cập qua web console thì không truy cập được. Vậy đâu còn phương án nào truy cập được vào hệ thống đâu
Chết rồi, Google drive k có bản backup cái vps này mới nhọ chứ :((
Vậy bạn cố reboot hay restart xem sao vào đc chứ hết cách rồi
Thử mọi cách rồi :((
Minh vô đc vnc rồi và cũng lỗi như vps kia
# service nginx start
Redirecting to /bin/systemctl start nginx.service
Job for nginx.service failed because the control process exited with error code. See “systemctl status nginx.service” and “journalctl -xe” for details.
Nhưng k hiểu sao chỉ vào đc vnc mà k vào đc ftp và Terminal cứ báo
[SSH] ERROR: setsockopt SO_KEEPALIVE: Invalid argument
[SSH] CONNECT 168.235.92.222
[SSH] FAIL: ssh_exchange_identification: read: Connection refused
[SSH] INFO: DISCONNECT
Minh chay lenh joun… gi do theo hướng dẫn ra cái này Phương ơi:
http://prntscr.com/hvyqwc
nginx -t
vàsystemctl status nginx -l
của bạn ra kết quả gìMinh vao dc vnc và gõ hocvps và backup đc bình thường. Nhưng web k vào đc: http://prntscr.com/hwxhe6
Dạo này hocvps có vde gì về bảo mật ấy, cứ move site qua là bị, mình vừa bị thêm 1 cái vps nữa: 139.99.100.248
Move mấy cái domain có https qua rồi tự dưng login ssh k được và lăn quay ra
_ Hệ thống website không liên quan đến SSH nhé bạn, độc lập nên không ảnh hưởng đến SSH được.
_ Log bạn thì báo không tồn tại “/var/log/nginx/error.log”. Bạn cung cấp kết quả của
– Và ngay khi bạn cài đặt xong VPS thì kết quả test Nginx như thế nào. Hiện test thử VPS mới CentOS 6 và CentO 7 đều hoàn toàn bình thường
Ý mình là bảo mật quá đó, đụng cái nó block ip gì k ấy?
M chạy máy lệnh trên đây: https://pastebin.com/XEB504vM
nginx mình start được rồi, tự dưng đc nhưng giờ các site đều bị lỗi 502 bad getway
Một đống conflict server_name kìa. Ví dụ một cái nginx: [warn] conflicting server name “ghepcard.com” on 0.0.0.0:80, ignored
Nghĩa là trong
/etc/nginx/conf.d
có tận 2 chỗ quy địnhghepcard.com:80
Bạn kiểm tra lại và xóa bớt đi. Chắc bạn copy Nginx vào và không xóa Nginx mới tạo đi?
Bên nhà cung cấp dediserve đã fix lỗi cho mình là tạo file log là nó hết bị rồi.
Nhưng giờ vào port của vps thì nó mới bi 502 Phương ạ
Ps: cái vps bên OVH thì nó k fix cho mình, nên vẫn bị k log đc vô ssh
1. Nginx như bạn thì vẫn 1 đống lỗi conflict server_name còn gì
2. Nếu thiếu file error.log thì bạn tạo và phân quyền nginx:nginx cho nó
touch /var/log/nginx/error.log
chown nginx:nginx /var/log/nginx/error.log
Chắc do miinhf add domain mà quên change port, tý mình xóa hết file conf đi xem còn lỗi k. Vì domain đó cũng chưa trỏ về vps.
Cho mình hỏi là cái vps thuws2: ở OVH hiện tại chỉ vào đc kvm chế độ rescue. CÓ cách nào khởi động nginx cho nó hoạt động k Phương?
Đây là vps ở OVH nha Phương
http://prntscr.com/hy02si
VPS bạn chuyển sang trạng thái rescue mode thì sau đó bạn phải mount lại phân vùng. Vấn đề kĩ thuật phần cứng này bạn liên hệ OVH support thì tốt hơn, mình không nắm rõ. Cụ thể là hiện hệ thống đang chạy trên phân vùng rescue, không phải phân vùng ban đầu
À xong mình click cho khởi động lại chế độ bình thường rồi mà
Hệ thống bạn vẫn đang ở phân vùng Rescue Mode. Bằng chứng là bạn không thể gọi lệnh
hocvps
đó thôiCũng như bạn chạy service nginx start thì rõ
ồ thế để m contact họ xem tn
sao trong thư mục /etc/nginx/conf.d của em lại ko có file nào nhỉ… ở bước cấu hình nginx ý ạ
em cảm ơn
ls -al /etc/nginx/
của bạn ra kết quả gìVà hệ thống bạn là gì? Có sử dụng Nginx không? Vì nhiều hệ thống có thể Nginx đặt vị trí khác, dù /etc/nginx là mặc định đa số rồi
đây bác:
total 8
drwxr-xr-x 2 root root 4096 Oct 18 08:12 .
drwxr-xr-x 5 root root 4096 Jan 1 09:38 ..
Em dùng Nginx-Centos7 x64
Ý là bạn tự cài Nginx hay dùng script gì.
whereis nginx
của bạn ra kết quả gìra KQ này ạ:
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man3/nginx.3pm.gz /usr/share/man/man8/nginx.8.gz
Hoàn toàn bình thường. Vậy thì bạn kiểm tra hết các thư mục được liệt kê xem cấu hình Nginx. Chứ bình thường là ở /etc/nginx hết. Hoặc bạn gửi VPS qua support@hocvps.com mình xem trực tiếp cho
Cho em hỏi nâng cấp Vps có bị ảnh hưởng không ạ?
Không bạn nhé. OK
A ơi nếu như tên miền hết hạn thì có thể truy cập theo ip máy chủ được không và có ảnh hưởng gì không ạ
Không truy cập được theo IP máy chủ bạn nhé. Bạn back cấu hình Nginx về ban đầu, thời điểm chưa cài SSL
E thêm sub domain thì nhận được dãy đỏ
“An unexpected error occurred:
The request message was malformed :: Error creating new authz :: Invalid character in DNS name”
Vậy e xử lý thế nào ạ?
Subdomain của bạn có kí tự đặc biệt, không chấp nhận. Bạn issue lại nhé
free.domain.net thì sai ký tự như nào nhỉ?
có thể trong quá trình nhập bạn bật gõ tiếng việt rồi sửa kí tự, cũng như A Record của sub bạn trỏ về IP VPS chưa?
Mình cài cho domain chính của VPS, khi vào theo link login HocVPS Script Admin vì chứng chỉ thành công, màu xanh. Nhưng khi vào link website bình thường thì màu đỏ. (Website này mình chưa cài đặt gì, chỉ để trống). Khi click xem thông tin chứng chỉ thì lại báo “Issued to” cho 1 domain con trên VPS của mình.
Link domain chính: http://quannguyenphat.com
Link domain con http://buiteam.com
Mình kiểm tra trong nano /etc/nginx/conf.d/hocvps.com.conf cũng không thấy xuất hiện domain con, cài lại chứng chỉ cho domain chính cũng bị thế.
Nhờ bạn hỗ trợ. Cảm ơn bạn.
Với khi mình kiểm tra
nginx -t
Thì phản hồi lại
nginx: [warn] conflicting server name “www.quannguyenphat.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ó dòng đầu tiên khác với hướng dẫn của bạn.
Cho mình toàn bộ các Nginx Conf trong thư mục /etc/nginx/conf.d nhé. Và kết quả của
ls -al /etc/letsencrypt/live/
kết quả ls -al /etc/letsencrypt/live/
total 32
drwx—— 8 root root 4096 Dec 30 19:25 .
drwxr-xr-x 9 root root 4096 Dec 30 19:25 ..
drwxr-xr-x 2 root root 4096 Dec 26 23:10 buiteam.com
drwxr-xr-x 2 root root 4096 Dec 27 00:21 canhobangiare.com
drwxr-xr-x 2 root root 4096 Dec 26 12:52 dulichsinhthaimientay.com
drwxr-xr-x 2 root root 4096 Dec 25 16:09 mythodaipho.vn
drwxr-xr-x 2 root root 4096 Dec 30 19:25 quannguyenphat.com
drwxr-xr-x 2 root root 4096 Dec 27 00:13 xetoyotatiengiang.com
file /etc/nginx/conf.d Domain chính (bạn xóa giùm mình comment kia, mình tạo ra comment mới rồi, sorry bạn)
https://pastebin.com/KpTe8vV3
Sửa đoạn này nhé bạn
index index.php index.html index.htm;
server_name quannguyenphat.com
Mình sửa thành công rồi. Cảm ơn bạn rất nhiều!
Mình làm bước add domain, chạy lên này
# Start Nginx
service nginx start
thì báo lỗi
Redirecting to /bin/systemctl start nginx.service
Job for nginx.service failed because the control process exited with error code. See “systemctl status nginx.service” and “journalctl -xe” for details.
Nhờ bạn hỗ trợ với! Thanks bạn nhiều!
à, mình giải quyết được rồi. Thanks bạn!
Uhm. Của bạn chắc là lỗi gì của cấu hình Nginx
Nếu mình dùng nhiều website trên cùng 1 VPS, chỗ Tự động gia hạn Let’s Encrypt mình chỉ làm 1 lần thôi phải không? Hay mỗi lần thêm website thì cần làm bước này?
Cảm ơn HocVPS
Chỉ một lần thôi bạn nhé
Mình cũng vừa cài xong cho web của mình, cảm ơn bạn!
https://sonlongtech.com
Trước khi cài Let’s Encrypt thì mình đo tốc độ web được 91 điểm bằng tools.pingdom.com, sau khi cài xong mình còn được 76 điểm với các điểm sau rất thấp:
F0 Minimize request size
D 67 Remove query strings from static resources
C75 Minimize redirects
C76 Specify a Vary: Accept-Encoding header
Mong ad giúp đỡ mình cải thiện tốc độ
Cấu hình đúng thì Redirect cũng đc 90 điểm mà. Bạn xem lại cấu hình Nginx Conf nhé
Mình copy y nguyên cái “File cấu hình Nginx cuối cùng sẽ tương tự như sau” , chỉ thay hocvps.com = bongdaso442.com bằng phím ctrl +h của notepad ++ vơi port 2017 = port mình dùng thôi, có khác chỗ nào đâu ad ơi?
Mình vừa xóa VPS đi rồi tạo VPS mới với domain cũ mà ko hiểu sao mình ko cài được Wp mặc dù đã dùng Script tự động cài đặt HocVPS Script và WordPress, có phải do chứng chỉ lets encrypt mình cài ở domain với VPS ko nhỉ ad?
Về cơ bản, không có gì chặn bạn cài WP cả. Bạn gặp thông báo gì
CPU Usage 48% mặc dù mình mới chỉ cài Script tự động cài đặt HocVPS Script và WordPress trc đây thường chỉ mất 3%, https://bongdaso442.com/wp-admin ko truy cập được để cài wp, chắc do https rồi, có cách nào khắc phục ko ad ơi?
wp-admin thì bạn đã cài SSL cho site ý trên VPS mới chưa? Bạn kiểm tra service nginx nhé
Mình cấu hình như các bước trên đến bước: Kiểm tra lại cấu hình Nginx: nginx -t
Thì phản hồi như sau:
nginx: [emerg] BIO_new_file(“/etc/letsencrypt/live/bongdaso442.com/fullchain.pem”) failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen(‘/etc/letsencrypt/live/bongdaso442.com/fullchain.pem’,’r’) error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: configuration file /etc/nginx/nginx.conf test failed
Bạn giúp mình chỉnh sửa với, không hiểu sao ko được
Không tồn tại chứng chỉ
bongdaso442.com
. Bạn kiểm tra lại thư mục/etc/letsencrypt/live/bongdaso442.com
nếu không tồn tại thì bạn issue lại chứng chỉ đi, không thành công rồiMình chỉnh sửa thì nó lại bị lỗi này:
nginx: [emerg] invalid parameter “443” in /etc/nginx/conf.d/bongdaso442.com.conf:21
nginx: configuration file /etc/nginx/nginx.conf test failed
Dòng 21 thừa chữ 443?
Mình issue lại chứng chỉ rồi mà không thành công rồi, bạn có thể hướng dẫn cụ thể hơn ko
Từng lỗi cụ thể mình chỉ từng fix cụ thể như thế còn gì bạn. Bạn không mô tả lỗi hay cung cấp đầy đủ thông tin thì chịu thôi
Trước khi mình cài SSL thấy server respone time < 200ms nhưng sau khi mình cài chỉ số đó tăng lên tầm từ 400ms – 600ms. Liệu nguyên nhân có phải do cấu hình SSL không bạn, có cách nào cải thiện không hả bạn.
Mình ko muốn tên miền chạy SSL nữa, chỉ cách mình gỡ bỏ SSL của tên miền vừa cài.
Cám ơn
Chứng chỉ thì bạn cứ để nguyên đó còn Nginx Conf bạn sửa về như ban đầu, xong restart Nginx
Admin ơi mình ko muốn dùng ssl nữa và đã sửa cấu hình file nginx conf về như ban đầu và web hoạt động bình thường. Nhưng giờ vào web có https bị báo lỗi và ko tự redict 301 về site http đc. Bạn chỉ giúp mình với vì nếu ko chuyển redict 301 https về http đc thì các thứ hạng SEO của mình sẽ mất hết. Mong admin giúp đỡ với ak. Mình cám ơn nhiều ak!
Bạn thêm block rewrite tương tự như hướng dẫn thôi, chỉ là đảo ngược
server {
listen 443;
server_name hocvps.com www.hocvps.com;
rewrite ^(.*) http://hocvps.com$1 permanent;
}
Bạn ơi mong bạn giúp mình với mình vẫn chưa chỉnh làm sao để website tự động rediect 301 https về http đc. Đây là file cấu hình file ngix conf củ mình..Bạn xem được chưa và sửa lại giúp mình với..cám ơn bạn nhiều lắm!
server {
listen 443;
server_name mizukiparkbinhchanh.info http://www.mizukiparkbinhchanh.info;
rewrite ^(.*) http://mizukiparkbinhchanh.info$1 permanent;
}
server {
listen 80 default_server;
root /home/mizukiparkbinhchanh.info/public_html;
server_name mizukiparkbinhchanh.info;
}
Cấu hinh bạn đúng rồi. Bạn restart Nginx cũng như sửa lại Site URL và WP URL chưa?
Mình đã restar ngix rồi nhưng khi truy cập https://mizukiparkbinhchanh.info vẫn bị báo lỗi.
sửa lại Site URL và WP URL là ntn hả bạn??
Trinh duyệt của bạn dính HSTS nên bạn phải thử bằng trình duyệt khác nhé. Như trong ảnh ấn
Proceed to mizukiparkbinhchanh.info (unsafe)
là ra site không HTTPS tức http://…..http://prntscr.com/i21xkr
Nó vẫn sẽ yêu cầu 1 SSL để xử lý các request 443 nên bạn vẫn cần SSL cho cái block 443 redirect về 80 đó
Admin ơi..vậy là cấu hình file ngix của mình đúng rồi và ko cần chỉnh sửa gì thêm đúng ko bạn!
admin ơi làm ntn để khi 1 người vào website ko hiện lên kết nối của bạn ko phải là kết nối riêng tư. Admin chỉ dùm mình với
Như mình đã nói, request vẫn là 443 thì vó vẫn sẽ yêu cầu 1 SSL để xử lý các request 443 nên bạn vẫn cần SSL cho cái block 443 đó.
Mặc dù ngay lập tức redirect về 80
Nó giống như trong bài viết block
www.domain:443
redirect vềdomain:443
vẫn phải cài SSLMình đã cái ssl và chỉ sửa cấu hình nigx conf thôi.. vậy có cần thêm đoạn code nào vào file ngix conf nữa ko bạn hay ntn ak.. mình mới tập cái site trên vps bằng hocvps nên ko biết gì cả..mong bạn giúp đỡ
server {
listen 443;
server_name mizukiparkbinhchanh.info www.mizukiparkbinhchanh.info;
ssl_certificate file_chứng_chỉ;
ssl_certificate_key file_key;
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 ^(.*) http://mizukiparkbinhchanh.info$1 permanent;
}
cám ơn adm nhé! mình đã sửa thành công..cám ơn bạn nhiều!
kết quả của dòng này là
#crontab -l
30 2 * * * /opt/letsencrypt/letsencrypt-auto renew –pre-hook “service nginx stop” –post-hook “service nginx start” >> /var/log/le-renew.log
mà lúc add task nó lại bị như này
# crontab: installing new crontab
-bash: crontab:: command not found
đã check và cài crontab https://hocvps.com/tong-quat-ve-crontab/, admin giúp được không ?
crontab -l
của bạn ra kết quả gìnhư trên
#crontab -l
30 2 * * * /opt/letsencrypt/letsencrypt-auto renew –pre-hook “service nginx stop” –post-hook “service nginx start” >> /var/log/le-renew.log
Cài đặt thành công rồi, bạn kệ đi
OK 🙂 cảm ơn Việt Phương
admin oi. cài htps trên 1 server thì chỉ cần gia hạn cái domain gốc. hay là mỗi lần add thêm domain phải gia hạn 1 lần vậy ah
Dòng tự động gia hạn hay gia hạn tự động áp dụng cho toàn bộ các chứng chỉ Let’s Encrypt trên VPS nhé. Nó sẽ tự check chứng chỉ nào còn hạn <30 ngày thì gia hạn, không thì bỏ qua. Nên bạn chỉ cần thêm crontab 1 lần duy nhất thôi
Việt Phương cho mình hỏi sau khi cài xong https rồi truy cập vào site vẫn bình thường. Nhưng giờ ko truy cập được vào “https:domain.com:port/filemanager cũng như phpMyAdmin HocVPS Script Admin mình nhận được lỗi 403 Forbidden. Mình đã vào menu hocvps và chọn 14 phân quyền rồi vẫn không được.
Cho mình nội dung Nginx Conf bạn vừa sửa, paste qua pastebin.com cho gọn
Đây là đoạn code của Nginx. Mong bạn xem giúp hộ mình
https://pastebin.com/nucw7tDb
Dòng auth_basic_user_file bạn cài đặt sai
Cái đó mình sửa lại thành auth_basic_user_file /home/domain.com/private_html/hocvps/.htpasswd; vẫn không được việt phương ạ. Thậm chí có 1 site đang hoạt động mình đổi hocvps thành cái khác nó vẫn truy cập như thường. chứng to cái đấy hình như ko ảnh hưởng thì phải 🙁
Hay có cách nào xóa để cài lại ssl từ đầu không nhỉ? Mà giờ xóa đi chắc gì nó đã vào được quản lý file hay phpadmin 🙁
1. Bản chất bạn sai cấu hình Nginx Conf chứ chứng chỉ SSL không sai. Lại thì bạn để Nginx Conf về như cũ là được
2. Bạn gửi VPS qua support@hocvps.com mình xem cho
Mình đã gửi mail support rồi nhé. Cảm ơn Phương
Done. Các bạn khi sửa lại thì nhớ restart service nhé
Cho mình hỏi bị như thế này là do cái gì vậy ad. Xin cảm ơn
Failed authorization procedure. http://www.hatgiongtrithuc.com (tls-sni-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Timeout, hatgiongtrithuc.com (tls-sni-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Timeout
IMPORTANT NOTES:
– The following errors were reported by the server:
Domain: http://www.hatgiongtrithuc.com
Type: connection
Detail: Timeout
Domain: hatgiongtrithuc.com
Type: connection
Detail: Timeout
To fix these errors, please make sure that your domain name was
entered correctly and the DNS A/AAAA record(s) for that domain
contain(s) the right IP address. Additionally, please check that
your computer has a publicly routable IP address and that no
firewalls are preventing the server from communicating with the
client. If you’re using the webroot plugin, you should also verify
that you are serving files from the webroot path you provided.
– 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.
[root@localhost letsencrypt]# ./letsencrypt-auto certonly –standalone
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Please enter in your domain name(s) (comma and/or space separated) (Enter ‘c’
to cancel): hatgiongtrithuc.com
Obtaining a new certificate
Performing the following challenges:
tls-sni-01 challenge for hatgiongtrithuc.com
Waiting for verification…
Cleaning up challenges
Failed authorization procedure. hatgiongtrithuc.com (tls-sni-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Timeout
LE’ không thể kết nối đến
www.domain
. Bạn đã trỏwwW
record về ip vps chưa?
mình trỏ ip về domain rồi. đợt trước cũng có làm, mà hok bị gì hôm nay thì bị thế
https://goo.gl/cDWn2J Hình Ảnh
Ý mình là bạn đang cài SSL cho
hatgiongtrithuc.com
trên VPS 115.79.29.154 chứ? Và mình thấy lần cập nhật cuối cùng 23/11, không biết là Record bạn mới trỏ à? Một số nhà cung cấp có thể cần 24h mới ổn địnhkhông mình chỉ cài cái Let’s Encrypt này thôi bạn
Ý mình là VPS cài SSL có đúng là VPS mà domain trỏ về không. Và cả 2 record đã được trỏ về hơn 24h chưa?
đúng bạn có cái link ảnh ở trên đó. ping tên miền thì nó vẫn ra địa chỉ IP chính xác mà
mình mới trỏ ip về domain. domain bên godaddy hay là mới trỏ cần 24h mới cập nhật được nhỉ?
24h sau bạn thử lại nhé
Ok. tại hôm trước cũng làm 1 site rồi. trỏ ip về domain cài Let’s Encrypt nhanh gọn luôn. nay lại bị lỗi.
Được rồi nha ad. Xin cảm ơn. chưa mở port 443 🙁
Ok bạn noted. Đúng là mình không để ý còn case này thật. VPS bạn GG à? Chứ bình thường HocVPs mở port 443 rồi mà
mình tự xây dựng host riêng, mới làm nên còn hơi gà mờ. Thanks ad nhìu nhé.
ad ơi mình có cách nào xóa hocvps để cài lại không nhỉ? cài dc SSL nhưng không vào được File Manager: https://domain.com:3456 không hiện login luôn
1. HocVPs không xóa được, bạn chỉ có thể reinstall và cài lại từ đầu
2. Cho mình Nginx Conf bạn vừa thiết lập để cài SSL. Mình nghĩ bạn cài sai. Và bạn đã mở port 3456 chưa?
cho mình xin code reinstall và cài lại từ đầu với ad 🙁
Bạn vào cài đặt VPS chọn reinstall VPs đó, như là cài lại Win. Và mình truy cập
https://phukiensieucap.com:8888/
ok mà?File bạn cấu hình 8888 đâu phải 3456?
CÁCH CÀI CHUẨN 100%
Hi mọi ng !
Mình cài cũng bị 2,3 lần mới okie sau đó mình rút ra được kinh nghiệm này để mọi người cài ít bị lỗi hơn.
1 > Tắt unikey trước khi cài đặt
2 > Phần bổ sung thêm domain/subdomain muốn cài đặt Let’s Encrypt, các bạn chạy lại lệnh:
# Stop Nginx
service nginx stop
# Install Let’s Encrypt
cd /opt/letsencrypt
./letsencrypt-auto certonly –standalone
3 > Cấu hình Nginx (phần này nhiều người gặp lỗi nhất)
Sau khi các bạn “Tạo file DH parameters 2048 bit” và “Mở file cấu hình lên với nano” => các bạn xóa hết đi => Tiếp đó các bạn coppy tất cả “File cấu hình Nginx cuối cùng sẽ tương tự như sau:” bỏ vào NOTEPAD++ => Các bạn nhấn tổ hợp Ctrl+H thay thế “hocvps.com” bằng “domain” của các bạn ==> sau đó các bạn coppy đống này paste vào file nano cấu hình ==> Ctrl + 0 và enter lưu lại. Ctrl + X thoát ra => và kiểm tra kết quả với nginx -t
Chúc các bạn thành công !
Lưu ý là phần 3 thì các domain không phải domain chính cài HocVPs thì không cấu hình phần HocVPs Port, cụ thể là phần 2017 như trong hướng dẫn
Luân ơi, mình có tạo subdomain, https cho main domain ok rồi nhưng khi vào = sub thì nó direct về main domain, mình thử thay listen 443 ssl http2; bằng listen 80 default_server; thì nó lại bt.
Thanks!@
Bạn mô tả lại cụ thể case của bạn đi. Hoặc cung cấp Nginx Conf của domain và subdomain. Paste qua https://pastebin.com/ cho gọn
Và trước khi cài SSL thì cả sub và main đều hoạt động độc lập bình thường?
Mình cài domain thành công rồi.
Đến cài subdomain thì nó báo thế này:
Mong các cao nhân giúp đỡ.
The following errors were reported by the server:
Domain: http://www.cms.vrvisit.vn
Type: connection
Detail: DNS problem: NXDOMAIN looking up A for http://www.cms.vrvisit.vn
To fix these errors, please make sure that your domain name was
entered correctly and the DNS A/AAAA record(s) for that domain
contain(s) the right IP address. Additionally, please check that
your computer has a publicly routable IP address and that no
firewalls are preventing the server from communicating with the
client. If you’re using the webroot plugin, you should also verify
that you are serving files from the webroot path you provided.
sub domain
www.cms
hoặc*
bạn trỏ về ip vps chưa?Mình trỏ về rồi và nó chạy rồi. nhưng cài ssl không dc thôi
Hiện Let’s Encrypt nó detect là http://www.cms chưa trỏ về IP VPS nên
1. Bạn trỏ hẳn
*
A Record về ip VPS.2. Hoặc bạn issue cert cho cms.domain thôi. Vì mình thấy thông thường người dùng họ cũng không truy cập qua
https:/www.
Chụp mình bản DNS Config của bạn. Và hình như bạn không dùng Cloudfare đúng không
Cảm ơn Phương. Mình làm được rồi.
Phương án
*
à bạn?Mình chuyen hết DNS về
Mình cài xong rồi thì kiểm tra ngĩn báo như thế này
nginx: [emerg] BIO_new_file(“/etc/letsencrypt/live/dunglendi.com/fullchain.pem”) failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen(‘/etc/letsencrypt/live/dunglendi.com/fullchain.pem’,’r’) error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: configuration file /etc/nginx/nginx.conf test failed
Admin giúp mình khắc phục với, mình mới học nên chưa biết nhiều. AD chỉ cụ thể giúp với ạ
Nginx không thấy cert của bạn.
1. Cho mình cấu hình Nginx của domain đó. Paste qua https://pastebin.com/ cho gọn
2. Kết quả lệnh
ls -al /etc/letsencrypt/live/
https://pastebin.com/pGXvvKJQ
Cấu hình đây bạn ơi, giúp mình với, Web treo mất r
nếu như mình muốn xóa không dùng SSL nữa thì thao tác như thế nào ạ
[root@server home]# ls -al /etc/letsencrypt/live/
total 12
drwx—— 3 root root 4096 Nov 15 09:38 .
drwxr-xr-x 9 root root 4096 Nov 15 09:38 ..
drwxr-xr-x 2 root root 4096 Nov 15 09:38 ohbonus.com
Như vậy đâu tồn tại cert nào cho
dunglendi.com
đâu bạn?mình cài 2 web trên 1 server. hqua mình làm cả 2 cái đều bị lỗi như vậy. giờ muốn xóa hết cài lại thì ntn ạ
Cert thì lỗi sẽ không tồn tại cert, thành công thì tồn tại cert.
Cấu hình nginx thì back về trước khi chỉnh sửa là không ssl, còn chỉnh sửa thì là ssl
Thế thôi nên chả có cái gì để xóa cả
Ad cho e hỏi ạ. Khi e add thêm domain mới để cài SSL thì nó báo ntn. Vậy làm sao fix dc ạ. E cám ơn ad
http://prntscr.com/haappb
1. Bạn tắt hết trình gõ tiếng việt (unikey,vietkey) và issue lại cert xem
2. Cho mình nội dung của /var/log/letencrypt
3. Cho mình kết quả của
ls -al /etc/letsencrypt/live
Mình cũng bị giống như bạn này. Domain chính đã làm ngon lành. Nhưng thêm domain trong cùng vps nữa thì báo lỗi y hệt
1. Mình đã thử tắt , và điền lại lệnh vài lần rồi đều lỗi thế, thử cả điền từng lệnh
2. File nội dung đó đây https://pastebin.com/yPj0NQ9f
3. Kết quả của lệnh: ls: cannot access /etc/letencrypt/live: No such file or directory
Hy vọng đc bạn giúp cảm ơn ^^
3. Sorry bạn,
ls -al /etc/letsencrypt/live/
nhéAd cho e hỏi chút ạ. E dùng vps cloud google. Vps 1 e đã cài ssl Lét encrypt rồi. Nhưng do e lỡ tay xóa nhầm vps nên e cài lại hocvps mới. E có cần cài lại SSL này ko ạ? Hay là khi xóa vps rồi coi như là domain mới hoàn toàn ạ!
Bạn cài lại SSL nhé. Let’s Encrypt cho issue miễn phí mà, đừng quá 5 cert/7 ngày là đc
Ý e là domain đó e đã cài SSL ở vps cũ rồi. Giờ chuyển sang vps mới thì vẫn fai cài lại như bình thường ạ!
Uh, mình bảo cài lại mà
Có cách nào tạo Certificate tự động cho tất cả tên miền không nhỉ. Mình có 1 server, và mình muốn tạo name server dạng ns1.hoangsoft.com, ns2.hoangsoft.com sau đó mỗi lần đổi name server cho tên miền đó về 2 name server trên và truy cập tên miền nó sẽ tự tạo ra các Certificate của Let’s Enscrypt cho tên miền đó luôn mà ko phải gõ command.
Như bạn yêu cầu thì cần code tay rồi
Tức là vẫn có cách phải không, vậy để mình tìm hiểu thêm về nó
Chào bác, sau khi cài thành công Let’s encrypt cho 1 domain trong VPS của em thì cái HocVPS Script Admin không kết nối được (link http://45.32.111.193:2017/). Nhờ bác hỗ trợ cách sửa để vào được file manager/phpadmin…
Bạn đăng nhập bằng domain nhé. Cấu hình SSL phần HocVPS Admin rồi thì không truy cập được qua IP nữa
Lúc ban đầu cài VPS em lười trỏ domain nên dùng luôn ip làm domain chính.
Có cách nào khắc phục không ạ? Nếu không thì cũng cám ơn bác đã hỗ trợ.
Nếu thế là bạn cài SSL cho domain phụ? Chứ domain chính là IP thì Let’s Encrypt không có issue SSL đâu. Nếu thế thì cho mình nội dung 2 file .conf của domain chính (chính là IP) và domain phụ
Mình làm theo các bước cài đặt rồi mà sao ko thể truy cập vào web được thế admin?
Không thể truy cập trang web này
bongda442.info đã từ chối kết nối.
Hãy thử:
Kiểm tra kết nối
Kiểm tra proxy và tường lửa
ERR_CONNECTION_REFUSED
Bạn bật Nginx chưa?
nginx -t
bạn có kết quả gì?Mình gặp phả lỗi này admin giúp mình vs!
nginx: [emerg] BIO_new_file(“/etc/letsencrypt/live/www.thongtinchungcu.vn/fullchain.pem”) failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen(‘/etc/letsencrypt/live/www.thongtinchungcu.vn/fullchain.pem’,’r’) error:2006D080:BIO routines:BIO_new_file:no such file)
Không tồn tại cert
/etc/letsencrypt/live/www.thongtinchungcu.vn/
. Bạn kiểm tra lại thư mục xem, có thể cert chỉ là/etc/letsencrypt/live/thongtinchungcu.vn/
mình đang chạy ssl của comodos giờ chuyển qua let encrypt theo hướng dẫn của web nhưng bị báo lỗi này là sao vậy ad?
https://langtuphidao.tinytake.com/sf/MjA4NzM2MV82NTUxNjMy
Bạn tắt Nginx và cloudfare đám mây vàng(nếu có) chưa?
mình đang dùng share hosting có xài SSL Let encrypt, giờ chuyển qua xài VPS thì làm thế nào vì đến đoạn CÀI ĐẶT CHỨNG CHỈ LET’S ENCRYPT thì mình bị lỗi do đang sử dụng trên share hosting rồi nên nó ko cho qua bước này.
Bạn phải trỏ tên miền về VPS mới issue được cert nhé. LE làm thế tránh gian lận thôi 🙂
của em trong error nó xuất hiện chi chít lỗi này là sao hả các bác?
2017/10/28 22:43:28 [error] 9656#9656: *896556 access forbidden by rule, client: 103.227.176.5, server: mydomain.com, request: “GET /.well-known/acme-challenge/824X4_I4PSOS_V08DDZL0OC-5L__TRAZ HTTP/1.1”, host: “mydomain.com”
2017/10/28 22:43:29 [error] 9656#9656: *896558 access forbidden by rule, client: 103.227.176.5, server: mydomain.com, request: “GET /.well-known/acme-challenge/C8FMTMNPC_GABP4GR3Z8MWOGL_DLJYIZ HTTP/1.1”, host: “mydomain.com”
2017/10/28 22:43:29 [error] 9656#9656: *896560 access forbidden by rule, client: 103.227.176.5, server: mydomain.com, request: “GET /.well-known/acme-challenge/G8SIXGLWJWMM4707LTCCHVWSK2SV2JMU HTTP/1.1”, host: “mydomain.com”
Bạn cài Let’s Encrypt theo bài viết này hay theo script nào? Vì mình thấy LE đang đòi truy cập
/.well-known/acme-challenge/
Bạn kiểm tra nếu trong Nginx Conf của domain không có đoạn nào về
well-known
thì bạn thêm vào, nhớ trong block show web nhé# Disable .htaccess and other hidden files
location ~ /\.(?!well-known).* {
deny all;
access_log off;
log_not_found off;
}
Từ xưa giờ mình trung thành với hocvps mà, mình cài letsencrypt theo hướng dẫn của hocvps, có cài thêm cái httpd2 gì đó nữa 🙂
Khá lạ vì cài LE theo hướng dẫn này không liên quan đến thư mục
/.well-known/acme-challenge/
.1. Bạn fix như comment trên.
2. Bạn kiểm tra lại nội dung
/var/log/letsencrypt/letsencrypt.log
sau khi fix (chắc sau 1 ngày), gửi mình file đó“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”. đến bước này mình bí, Admin giúp mình với. khi mình vô đường dẫn /etc/nginx/conf.d/ thì ko có file config cho từng domain, nó chỉ có file IP_VPS.conf thôi. giờ phải làm sao vậy admin? Thank nhiều!
1. Hệ thống bạn là HocVPS chứ? Lúc cài đặt HocVPS bạn nhập domain hay IP?
2. Cho mình kết quả câu lệnh
ls -al /etc/nginx/conf.d
Cảm ơn bạn. Mình cài với script hocvps cũ, cài vestaxp. Mình cài lại với hocvps script mới rôi và đã cài thành công Let’s Encrypt. Cảm ơn bạn đã reply.
Ok bạn. Note là chỉ dùng HocVPS/VestaCP chứ không dùng cả 2 nhé bạn
Cho em hỏi, em có thể cài SSL let’s encrypt này cho link hocvps script admin https://ip:2017 , rồi cài SSL trả phí mua ở nhà cung cấp khác cho các site đang chạy trong vps đc không ạ ? Túm lại em chỉ muốn cho https://ip:port nhìn đẹp mắt tí thui :))
Mỗi site mỗi cấu hình Nginx riêng nên các SSL riêng, không xung đột nhau nên bạn không lo. Còn Let’s Encrypt hay các nhà cung cấp đều không phát hành SSL cho IP nhé, chỉ cho domain
Admin cho mình hỏi. Khi mình đăng ký mà quên gia hạn giờ Encrypt báo như thế này mình làm sao để tự động gia hạn ạ.
Link ảnh: https://imgur.com/a/ORkvQ
Về cơ bản, nó chỉ là cảnh báo khi cert sắp hết hạn, không có nghĩa là bạn chưa thiết lập gia hạn tư động. Còn nếu bạn chưa thiết lập gia hạn tự động thì làm như trong bài viết mình đề cập đó
https://hocvps.com/cai-dat-lets-encrypt/comment-page-17/#4/_Tự_động_gia_hạn_Let’s_Encrypt