– Hướng dẫn cài đặt chứng chỉ miễn phí Let’s Encrypt
– Hướng dẫn cài đặt chứng chỉ SSL (áp dụng Comodo/Godaddy…)
Chứng chỉ SSL (Secure Sockets Layer) là công nghệ mã hóa trao đổi dữ liệu giữa máy chủ web và máy tính cá nhân, đảm bảo việc trao đổi thông tin luôn luôn được bảo mật và an toàn, không thể bị khai thác và giải mã bởi đối tượng thứ ba. Ngoài ra SSL còn có nhiệm vụ như chứng thực Website, bảo mật FTP, Mail Service, VPN…. và rất nhiều ứng dụng khác.
Trong bài viết này, mình sẽ hướng dẫn các bạn tạo SSL Certificate trên nginx cho CentOS.
1. Tạo thư mục cho Certificate
sudo mkdir /etc/nginx/ssl
Di chuyển đến folder
cd /etc/nginx/ssl
2. Tạo Server Key và Certificate Signing Request
Tạo private server key. Chú ý ghi nhớ pass khi đăng ký nhé.
sudo openssl genrsa -des3 -out server.key 1024
Tạo certificate signing request
sudo openssl req -new -key server.key -out server.csr
Tiếp theo điền các thông tin như mẫu bên dưới. Chú ý cái Common name cần nhập chính xác domain của bạn hoặc IP nếu ko có. Phần challenge password và optional company name để trống.
You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:VI State or Province Name (full name) [Some-State]:Ha Noi Locality Name (eg, city) []:HN Organization Name (eg, company) [Internet Widgits Pty Ltd]:Awesome Inc Organizational Unit Name (eg, section) []:Dept of Merriment Common Name (e.g. server FQDN or YOUR name) []:example.com Email Address []:webmaster@awesomeinc.com
3. Xóa Passphrase vì thông tin này không cần thiết
sudo cp server.key server.key.org sudo openssl rsa -in server.key.org -out server.key
4. Sign SSL Certificate
Mình sẽ đăng ký chứng chỉ hết hạn sau 1 năm nữa (365):
sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
5. Cài đặt Certificate
Mở SSL config
nano /etc/nginx/conf.d/ssl.conf
Chỉnh lại phần dưới HTTPS Server như thông tin sau (chú ý thay example.com):
# HTTPS server server { listen 443; server_name example.com; ssl on; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; }
Khởi động lại nginx
/etc/init.d/nginx restart
Truy cập vào https://youraddress, bạn sẽ thấy website hoạt động bình thường.
Làm sao để add thêm SSL này cho site Virtual Host? Cảm ơn
Bạn đọc phần lưu ý đỏ mình đã note trong bài viết nhé
Mình đang có domain cài trên webserver theo hocvps. giờ mình muốn thêm subdomain cho site đó cụ thể m.domain.com , mình đã chạy hocvps chọn 12 subdomain domain chạy song song cùng domain nhưng chưa kết nối được với domain mới… ai hướng dẫn mình làm tiếp với
Menu 12 là Park Domain. Tức bạn muốn m.domain.com với domain.com cùng source code, trong trường hợp này là cùng thư mục web /home/domain.com/public_html ?
Cái đoạn common name mình điền nhầm thông tin thì chỉnh lại kiểu gì nhỉ mấy bác?
Bạn tạo cert mới thôi, bỏ cert cũ. Mà bạn nên dùng Let’s Encrypt hơn là chứng chỉ tự kí nhé
Cảm ơn bạn, để mình thử lại. À, có phải xoá cert cũ đi không bạn nhỉ?
Nếu không xài đến thì bạn xóa đi cho gọn, tránh nhầm lẫn sau này
SSL không cần dùng bên thứ 3 à Luân?
Nên dùng bên thứ 3 nhé bạn, không tự tạo
có một vấn đề em đang thắc mắc, mong MOD và Admin trả lời dùm em, em hiện tại đang xài Centos 7 + LAMP, em có cài chứng chỉ Let’s Encrypt cho domain vuicuoi.xyz, em còn 1 domain nữa cũng mún add chứng chỉ để làm 1 site mới nhưng không biết làm thế nào, khi em chạy lệnh để add chứng chỉ cho domain thứ 2 thì domain vuicuoi.xyz sẽ báo lỗi bảo mật và em lại phải sửa lại.
Có cách nào add thêm site mới mà ko bị hỏng site chính không ạ.
Mỗi site một chứng chỉ riêng và 1 file cấu hình Nginx Webserver riêng nên không ảnh hưởng gì nhau cả. Bạn cứ theo hướng dẫn trong bài viết Let’s Encrypt nhé. Bạn comment đúng topic cho tiện support
Tại sao em làm theo hướng dẫn của bác mà và truy cập https thì nó thông báo
-Không thể truy cập trang web này
-… đã từ chối kết nối.
Bác giúp em với. em mua ssl bên namechip về mà không thể cài vào hocvps được
Chứng chỉ mua bên ngoài bạn cài đặt theo hướng dẫn này nhé
https://hocvps.com/cai-dat-chung-chi-ssl/
[ support ]
Mình có nhờ 1 bạn cài SSL (chắc là free !) – bây giờ nó hết hạn và rơi vào tình trạng như thế này:
” Kết nối của bạn không phải là kết nối riêng tư
Có thể những kẻ tấn công đang cố đánh cắp thông tin của (ví dụ: mật khẩu, tin nhắn hoặc thẻ tín dụng). NET::ERR_CERT_DATE_INVALID
Tự động gửi một số thông tin hệ thống và nội dung trang tới Google để giúp phát hiện các ứng dụng và trang web nguy hiểm. Chính sách bảo mật
Quay lại an toànẨN CHI TIẾT
Máy chủ này không chứng minh được; chứng chỉ bảo mật của máy chủ này đã hết hạn cách đây 91 ngày. Điều này có thể do cấu hình sai hoặc có kẻ tấn công chặn kết nối của bạn. Đồng hồ của máy tính hiện được đặt là Chủ Nhật, 9 tháng 7, 2017. Ngày này có đúng không? Nếu không đúng, bạn phải sửa lại đồng hồ của hệ thống rồi làm mới trang này. Tìm hiểu thêm.
Tiếp tục truy cập (không an toàn) ”
=> Mình không chuyên về IT, xin được vài lời tư vấn để gỡ bỏ từ các pro pro. Thanks nhiều nhiều
Nếu bạn không chuyên IT thì nên nhờ gỡ hoặc gia hạn tiếp chứ bạn không biết động vào hệ thống đúng không?
Hệ thống bạn là VPS OS gì? Webserver sử dụng là Nginx hay Apache? SSL của bạn mình đoán chắc là Let’ Encrypt nên chỉ cần gia hạn là được
Tui đụng sâu vô được hệ thống – tới nơi cần làm mà không biết làm tiếp theo như thế nào dù đã đọc 2 bài viết này ^^
1. https://hocvps.com/cai-dat-lets-encrypt/#4/_Tự_động_gia_hạn_Let’s_Encrypt
2. https://hocvps.com/tong-quat-ve-crontab/
Đang nhờ đồng đội giúp tiếp.
Nhưng thanks Việt Phương nhiều trước nhé. Hi
Vậy thì bạn kiểm tra Nginx Conf của site là biết SSL đang sử dụng là SSL nào. Nếu SSL Let’s Encrpt thì chạy lệnh gia hạn là được, còn không thì có thể issue cert mới đè vào
bây giờ làm sao để khôi phục lại như cũ khi chưa cái Let’ Encrypt admin ?
chỉ em khôi phục lại để restart nginx với admin
Let’s Encrypt thì bạn chỉ cần xóa phần git về là ok
Còn nginx bạn đã kịp chỉnh đâu mà lỗi? Bạn restart nginx gặp thông báo gì?
bây h em không login được vps 🙁
Các lỗi không liên quan đến nhau nên bạn tập trung xử lý từng thứ 1.
1. Không login được VPS thì bạn check login trên web browser,check cổng SSH. Ping IP VPS xem off hay on
2. Lỗi Nginx thì check nginx status để xem lỗi.
Chứ các lỗi bạn bảo ko có thông báo hay log gì thì sao biết do gì
[root@nguyenphucit home]# systemctl status nginx.service
● nginx.service – nginx – high performance web server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset : disabled)
Active: failed (Result: exit-code) since Wed 2017-06-21 10:07:58 +07; 24s ago
Docs: http://nginx.org/en/docs/
Process: 23653 ExecStop=/bin/kill -s QUIT $MAINPID (code=exited, status=0/SUCC ESS)
Process: 24008 ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf (code= exited, status=1/FAILURE)
Main PID: 21151 (code=exited, status=0/SUCCESS)
Jun 21 10:07:58 nguyenphucit systemd[1]: Starting nginx – high performance w….
Jun 21 10:07:58 nguyenphucit nginx[24008]: nginx: [emerg] BIO_new_file(“/etc…)
Jun 21 10:07:58 nguyenphucit nginx[24008]: nginx: configuration file /etc/ng…d
Jun 21 10:07:58 nguyenphucit systemd[1]: nginx.service: control process exit…1
Jun 21 10:07:58 nguyenphucit systemd[1]: Failed to start nginx – high perfor….
Jun 21 10:07:58 nguyenphucit systemd[1]: Unit nginx.service entered failed s….
Jun 21 10:07:58 nguyenphucit systemd[1]: nginx.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
Bạn login đc VPS đấy chứ. Bạn chạy lệnh thêm tham số
-l
để hiển thị toàn bộ nhéJun 21 10:07:58 nguyenphucit nginx[24008]: nginx: [emerg] BIO_new_file(“/etc…)
Jun 21 10:07:58 nguyenphucit nginx[24008]: nginx: configuration file /etc/ng…d
2 dòng này sẽ cho bạn biết file cấu hình nginx của bạn sai chỗ nào. Mà thế tức là bạn đã chỉnh sửa cấu hình Nginx? Thế bạn backup về file cũ là ok mà
nginx status ĐÂY Ạ
http://i.imgur.com/zqScRFd.png
em chưa chỉnh gì trong ngin cả a ơi : a xem status chi tiết trong hình giúp em vs
Xóa cả thư mục SSL đi rồi restart lại xem:
rm -rf /etc/nginx/ssl
oke được rồi a ơi 😀 để em thử cài lại Let’ Encrypt
Sao mình cài xong như trên > chạy https cho site thì bị đỏ cái https nhỉ ? bạn giúp mình được không
Giờ các trinh duyệt khá chặt với SSL tự tạo. Nếu dùng SSL miễn phí bạn nên dùng SSL từ các bên thứ 3, như Let’s Encrypt
https://hocvps.com/cai-dat-lets-encrypt/
Mình cài Let’s Encrypt nó báo lỗi này bạn chỉ vs
Command “/root/.local/share/letsencrypt/bin/python2.7 -u -c “import setuptools, tokenize;__file__=’/tmp/pip-build-4c2IYf/cryptography/setup.py’;exec(compile(getattr(tokenize, ‘open’, open)(__file__).read().replace(‘\r\n’, ‘\n’), __file__, ‘exec’))” install –record /tmp/pip-JD0hlb-record/install-record.txt –single-version-externally-managed –compile –install-headers /root/.local/share/letsencrypt/include/site/python2.7/cryptography” failed with error code 1 in /tmp/pip-build-4c2IYf/cryptography
You are using pip version 8.0.3, however version 9.0.1 is available.
You should consider upgrading via the ‘pip install –upgrade pip’ command.
VPS bạn RAM bao nhiêu?
Mình nghĩ thời điểm bạn cài đặt Let’ Encrypt quá thiếu RAM. Kết quả của
free -m
là gì bạnmình đã thử lệnh đó nhưng vẫn lồi k cài được 😀 h mình restart nginx k đc luôn :ò
Ram 1GB
Bạn gửi VPS qua support@hocvps.com mình xem cho
Mình có mua 1 cái chứng chỉ ssl của thằng namecheap mà nó gửi mail về không có cái sll nào để cài thì mình vào đâu để tìm vậy Luân?
Bạn cần tạo cặp key csr theo thông tin domain của mình. Rồi thông qua key đó, bạn tạo SSL trên trang quản lý của Namecheap. Thành công, Namecheap sẽ gửi mail cho bạn trong đó chứa file nén SSL (chứa file .ca-bundle và .crt)
sao mình chỉnh lại https rồi mà Khởi động lại nginx không được nhỉ ?
Lỗi bạn do insert SSL vào Nginx Conf sai nên báo lỗi file không thể khởi động Nginx.
Lúc khởi động Nginx sẽ báo lỗi Conf sai ở dòng nào, như thế nào. Bạn cũng có thể kiểm tra lỗi bằng
# nginx -t
Nếu bạn dùng SSL miễn phí, nên dùng từ bên thứ 3 như Let’s Encrypt, không nên tự tạo
Hướng dẫn Cài đặt chứng chỉ bảo mật Let’s Encrypt trên server HocVPS Script
nano /etc/nginx/conf.d/ssl.conf
sao minhf nos k co file ssl.còn vậy mình tìm hết rồi. vps do
Chưa có thì tạo mới đó bạn
nó tạo tự động hay là phải thủ công? và mình cũng k biết nội dung nữa. mình cài ssl namecheap vps su dụng cr hocvps làm mãi k dc
Chào bạn !
Cách tạo ssl này có sử dụng được cho nhiều website trên cùng 1 vps không ? Và nếu mình xóa VPS thì mình phải tạo ssl cho từng website trên vps không bạn ?
Cám ơn bạn !
Cách này bạn thích tạo cho bao nhiêu website cũng được. Xóa VPS thì tất nhiên phải tạo lại rồi.
Hiện giờ có Let’s Encrypt đang rất hot nhé, bạn tìm hiểu thử coi: https://hocvps.com/cai-dat-lets-encrypt/
Vấn đề của mình như thế này.
Sau khi cài SSL thành công mình test https://domain.com thì bị lỗi 404
Còn site: http://domain.com chạy bình thường.
Hiện mình đã biết chuyển hướng http sáng https nhưng ko biết cấu hình sao cho site https về đúng thu mục public html
cam ơn Luân!
Lỗi này chỉ là cấu hình Nginx thôi, bạn kiểm tra lại cẩn thận nhé.
Có thể tham khảo thêm bài này: https://hocvps.com/cai-dat-lets-encrypt/
Mình copy nguyên cái code trong file, sửa tên miền nhưng khi start Nginx lỗi
[root@centos-512mb-lon1-01 home]# /etc/init.d/nginx restart
nginx: [emerg] BIO_new_file(“/etc/letsencrypt/live/domain.com/fullchain.pem”) failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen(‘/etc/letsencrypt/live/domain.com/fullchain.pem’,’r’) error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: configuration file /etc/nginx/nginx.conf test failed
Bác có skype không. remove cho em chút
Ah, bác xoá giúp em cái tên miền trong code trên với. cái này liên quan nhiều thứ nên không được cho lên. Thanks
Không thấy file cấu hình SSL trong /etc/letsencrypt/live/domain.com/
Bạn kiểm tra lại đi
A luân ơi đến chỗ
Tạo private server key. Chú ý ghi nhớ pass khi đăng ký nhé.
sudo openssl genrsa -des3 -out server.key 1024
e nhập pass vào không được viết gì cũng không được e dùng zoc kết nối nó bị sao hả anh
Không có bất kỳ thông báo nào à bạn, kỳ lạ thế?
Anh luân em muốn trang của em hiện địa chỉ mặc định là https:// chứ không phải www. thì em phải làm thế nào ạ ?
Bạn xem bài viết này, phần 2 để tìm hiểu cách tự động redirect sang https nhé: https://hocvps.com/cai-dat-lets-encrypt/#2/_Cấu_hình_Nginx
Chào Luân,
Mình dùng hocvps script, khi làm theo hướng dẫn thì không truy cập website với https:// được(Your connection is not private). Mình đã tắt iptables rồi.
Cái đoạn # HTTPS server thì mình vứt ra file ssl.conf à, hay gộp chung trong file domain.conf.
Ra thông báo đó là đúng rồi, vì đây là tự mã hóa, không dùng chứng chỉ của bên thứ 3.
em đang sài ssl của CloudFlare miễn phí, nếu sử dụng SSL riêng thì có sử dụng được trên Cloudflare hay là phải bỏ đi?
Mình cài đến bước cuối cùng thì bị lỗi như sau:
./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using –with-openssl= option.
Anh LUÂN TRẦN xem giúp với nhé.
Cảm ơn nhiều ạ!
Cấu hình như thế nào có bài nào hướng dẫn giúp mình với
Bạn up nội dung lên đi rồi gửi mình file cấu hình xem thế nào
Chào bạn!
Mình làm theo như hướng dẫn không lỗi gì ? Nhưng khi chạy https nó lại bảo ko có trang web này. Mong bạn giúp đỡ. Cảm ơn !
http://prntscr.com/6o4d7c
Domain của bạn là gì?
domain là http://www.iceo.vn. Với cho mình hỏi luôn khi dùng wordpress là dùng file .htaccess nhưng khi cài hocvps 1.1 lại không dùng được nên có web wordpress của mình bị lỗi tạo trang hoặc 1 số lỗi khác. Cảm ơn
Tình hình là link bình thường mình cũng đang ko truy cập vào được
Bạn vào xem giúp mình trang http://iceo.vn ok nhưng https://iceo.vn lại không được 404. Cảm ơn
Lỗi 404 là do cấu hình virtual host sai nhé bạn
Luân nói rõ chỗ này thêm đi, sau khi setup SSL của bên thứ 3, mình vào web https cũng bị lỗi 404
Bạn gặp vấn đề gì thì comment riêng ra ấy, cho nó rõ ràng nhé
co cach lam cho apacche centos 6 k a
hướng dẫn này có làm đc tương tự trên website chạy hocvps script không Luân ơi?
Có chứ vì HocVPS Script cũng là Nginx và CentOS
Luân cho hỏi, mình tạo tới bước tạo CSR nó không ra yêu cầu nhập thông tin mà ra như hình dưới là bị sao vậy.
https://lh5.googleusercontent.com/-XyBneNyB9wg/VLByspyr3kI/AAAAAAAAAQg/mJ97okX3sIw/w797-h441-no/2015-01-10_072339.jpg
Bạn gửi lại ảnh khác nhìn rõ ràng hơn được không?
Hi Luân
Mình đã làm theo Luân ok hết
nhưng khi chạy https
thì nó hiện cái này ra
còn ko đánh https thì nó ra web binh thuong
mong luân giúp đở
Chào Luân
Mình đang xài hocvps của bạn (centos 7)
mình đã làm theo hướng dẫn của bạn
nhưng khi chạy
nó báo lỗi not found (giống như khi cài script hocvps của Luân, khi không up file index và root nó báo lỗi y chang thế)
mình ko biết fix
Mình đoán bạn giải nén trực tiếp trên server nên webserver không có quyền đọc ghi ở folder public_html. Hãy chạy menu hocvps rồi chọn option số 14 nhé
Hình như chạy https là phải mua ssl key. Nếu cài như này là free phải ko nhỉ?
Cái file ssl.conf của mình thế này thì thay làm sao hã Luân
# HTTPS server
#
#server {
# listen 443;
# server_name localhost;
# keepalive_timeout 30;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
#openssl =1.0.1
#ssl_protocols SSLv3 TLSv1.1 TLSv1.2;
##
# ssl_session_cache shared:SSL:10m;
# ssl_session_timeout 10m;
## http://www.openssl.org/docs/apps/ciphers.html
# ssl_ciphers RC4:HIGH:!aNULL:!MD5:!kEDH;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# }
#include /usr/local/nginx/conf/staticfiles.conf;
#include /usr/local/nginx/conf/php.conf;
#include /usr/local/nginx/conf/drop.conf;
#include /usr/local/nginx/conf/errorpage.conf;
#}
sao mình chạy đoạn lệnh này: /etc/init.d/nginx
nó báo thế này nhỉ : -bash: /etc/init.d/nginx: No such file or directory
Bạn kiểm tra lại nginx xem có cài đặt và chạy bình thường ko?
Mình đang xài Apache, nếu cài nginx thì có sao ko nhỉ?
Thường người ta chỉ chạy 1 trong 2 webserver nginx hoặc apache thôi bạn
Như vậy mình ko áp dụng được theo bài viết này ạ?
Ừ bài này chỉ hướng dẫn với nginx thôi mà
Anh Luân oi! SSL này chỉ xài dc duy nhất tên trên 1 ip trọn đời hay sao a, có thể thây đổi ip dc ko, em vừa bị xóa cái vps ko chạy dc ssl nữa
Chào anh. mình có làm theo hướng dẫn nhưng hiện tại bị lỗi sau :
– file image hay html thì xem được
nhưng file php thì nó download nguyên cái file .php về
CentOS 6.5 64bit / cài HocVPS script
mong nhận được hổi âm . cảm ơn anh nhiều!
TuongDang ! Cái đó là do bạn chưa cài PHP !
Bạn cần cài PHp để server đọc đc file .php !
Bạn có thể xem hướng dẫn trên mạng
À nguyên nhân của bạn này là do chưa config php trong file cấu hình của nginx. Đã xử lý qua mail rồi.
Mình cũng đang bị y như bạn này nhưng của mình k load đc index.php chứ login admin vẫn bt.còn nếu chạy http thì vô dc hết
Bạn nên tạo comment mới và ghi rõ trường hợp của bạn để bên mình support được hiệu quả hơn nhé.
Em thử làm theo hướng dẫn !
Sử dụng VPS của Do ! HDH CentOS 6.5 64bit 500MB Ram\
Nhưng k đc anh ak !
vô bằng http thì bình thường mà https thì nó hiện : trang web k tồn tại !
Anh giúp e đi
Mình làm đc ùi !