Read more

[VestaCP – Phần 3] Thêm SSL cho trang quản trị VestaCP với Let’s Encrypt

Như mình nói ở bài cài đặt VestaCP, mặc định nó sẽ tạo ra một chứng chỉ SSL tự ký nên các trình duyệt sẽ cảnh báo bảo mật. Trong bài này chúng ta sẽ đăng ký chứng chỉ SSL miễn phí với Let’s Encrypt để khắc phục lỗi đó.
Mặc định, chứng chỉ tự tạo của VestaCP sẽ chứng thực cho hostname (vd: sv.vnsudo.com) mà chúng ta đã thiết lập khi cài VestaCP. Do vậy việc cần làm của chúng ta là tạo ra một chứng chỉ mới và cho nó dùng trên hostname này. Cụ thể, chúng ta sẽ sử dụng Let’s Encrypt để tạo chứng chỉ SSL miễn phí cho trang quản trị, và kể từ đó bạn sẽ đăng nhập vào trang quản trị bằng đường dẫn https://hostname:8083 thay cho IP, và nó được mã hóa.

Thiết lập lại DNS của hostname

Mặc định VestaCP đã tự tạo ra một tập hợp DNS cho cái hostname này, bây giờ bạn hãy vào mục DNS, tìm cái DNS của hostname và ấn List all records.
sua-dns-hostname01
Sau đó sửa toàn bộ IP có trong đó thành IP chính xác của máy chủ, và đổi ns1.localhost.ltdns2.localhost.ltd thành địa chỉ DNS riêng của bạn đã tạo ở bài trước.
sua-dns-hostname02
Mục đích của bước này là cho cái hostname có thể truy cập được trên trình duyệt và có thể sử dụng được toàn bộ các chức năng khác trên host.
Đồng thời bạn cũng sửa DNS của hostname và trỏ SOA về ns1.domain.com mà bạn đã tạo ở bài trước.
Bây giờ hãy thử gõ hostname trên trình duyệt xem có ra trang It’s worked của VestaCP chưa nhé, nếu nó hiện ra thì được rồi.

Thiết lập chứng chỉ SSL cho Hostname với Let’s Encrypt

Hãy đăng nhập vào máy chủ bằng tài khoản root. Sau đó cài Let’s Encrypt với các lệnh sau:
yum install git -y
git clone https://github.com/letsencrypt/letsencrypt /opt/le
cd /opt/le
Ở trên mình lưu Let’s Encrypt ở thư mục /opt/le nên sau này cần chạy lệnh letsencrypt thì nhớ cd vào thư mục này.
Bây giờ chúng ta tạm tắt NGINX và Apache.
service nginx stop
service httpd stop
Và tạo chứng chỉ SSL từ Let’s Encrypt cho hostname của mình, trong bài mình dùng hostname là sv.vnsudo.com, nhớ thay lại thành hostname của bạn.
./letsencrypt-auto certonly --standalone -d sv.vnsudo.com
Trong lúc cài, nó sẽ hỏi bạn điền email (email để khôi phục chứng chỉ nếu bị mất) và đồng ý điều khoản sử dụng. Chọn Angree và Enter.
vestacp-hostname-le-01
vestacp-hostname-le-02
Và bật tính năng tự động gia hạn chứng chỉ vì mặc định Let’s Encrypt sẽ hết hạn chứng chỉ trong 3 tháng.
/opt/le/letsencrypt-auto renew
Khi tạo xong chứng chỉ của bạn sẽ nằm ở thư mục /etc/letsencrypt/live/sv.vnsudo.com bao gồm cert.pem, privkey.pem, các tập tin khác không cần quan tâm.
Bước cuối cùng là tạo một cái symbolic link các tập tin chứng chỉ này thay thế chi 2 tập tin chứng chỉ tự tạo của VestaCP tại thư mục /usr/local/vesta/ssl.
rm -rf /usr/local/vesta/ssl/certificate.crt
ln -s /etc/letsencrypt/live/sv.vnsudo.com/cert.pem /usr/local/vesta/ssl/certificate.crt
rm -rf /usr/local/vesta/ssl/certificate.key
ln -s /etc/letsencrypt/live/sv.vnsudo.com/privkey.pem /usr/local/vesta/ssl/certificate.key
Và lưu ý, nhớ thay lại tên sv.vnsudo.com thành hostname của bạn kẻo lại sai đường dẫn.
Cuối cùng là khởi động lại VestaCP.
service vesta restart
Bây giờ hãy thử truy cập vào trang quản trị VestaCP bằng hostname nhé. Ví dụ: sv.vnsudo.com:8083 và bạn đã có chứng chỉ SSL hợp lệ.
vestacp-hostname-le-03
Và kể từ giờ này về sau bạn phải truy cập vào trang quản trị VestaCP thông qua hostname nhé vì IP vẫn chưa được cấp chứng chỉ, mà chúng ta lại không thể sử dụng nhiều chứng chỉ cho trang quản trị này nên chịu thôi.
Ở những bài cuối serie mình sẽ hướng dẫn bạn cách cài chứng chỉ SSL với Let’s Encrypt cho các domain thêm vào VestaCP.