Thiết lập bảo mật cho website theo giao thức https để tránh harker tiêu diệt
Chào Bạn!
Trong thời gian qua, có rất nhiều Bạn hỏi Uy về cách thiết lập giao thức https cho website của họ, vậy thì https là gì? tại sao lại phải thiết lập giao thức này? và thiết lập giao thức https như thế nào?
Tất cả các thắc mắc đó sẽ được từng bước giải đáp thông qua bài viết này.
1. Http là gì?
HTTP là các chữ cái đầu của các từ tiếng Anh "HyperText Transfer Protocol", nó được nhắc tới là giao thức truyền tải siêu văn bản. Http là một giao thức ứng dụng trong bộ các giao thức TCP/IP (gồm một nhóm các giao thức nền tảng cho internet).
Giao thức http không còn xa lạ gì với những ai đã từng sở hữu webiste, kể cả người không biết về công nghệ cho đến những người sành sỏi trong lĩnh vực IT (Information Technology).
Http hoạt động dựa trên mô hình Client – Server. Trong mô hình này, các máy tính của người dùng đầu cuối sẽ đóng vai trò làm máy khách (Client). Khi người dùng thực hiện một tác vụ nào đó, các máy khách sẽ gửi yêu cầu đến máy chủ (Server) và chờ đợi câu trả lời từ những máy chủ này. Để hiểu được các thông điệp, các chỉ thị của nhau thì các máy chủ và máy khách phải thực hiện việc trao đổi thông qua các giao thức. Một trong những giao thức được sử dụng thường xuyên nhất chính là HTTP. Như vậy đến đây, chúng ta có thể thấy Http đóng vai trò như một thực thể trung gian để phiên dịch thông điệp giúp máy trạm và máy chủ hiểu nhau, từ đó thực hiện các chỉ thị, mệnh lệnh đúng, chuẩn.
Hình 1: Quy trình trao đổi thông điệp giữa máy chủ và máy khách
Khi bạn gõ địa chỉ website của bạn vào trình duyệt Web, một lệnh http sẽ được gửi tới Web server để ra lệnh, chỉ thị nó tìm đúng trang Web được yêu cầu. Trang Web này sau đó sẽ được tải vềlocal (máy khách hay máy tính của người dùng đầu cuối), tiếp theo đó trang website này sẽ được mở trên trình duyệt Web, qua đó người dùng đầu cuối có thể xem được toàn bộ nội dung của trang web đó.
2. Nguy hiểm đến từ Http và giải pháp khắc phục
Khi bạn truy cập vào một trang Web thông qua giao thức http, trình duyệt web sẽ thực hiện các phiên kết nối đến Server của trang Web đó thông qua địa chỉ IP do hệ thống phân giải tên miền DNS (Domain Name Server) cung cấp.
Trong quá trình kết nối và thực hiện các chỉ thị của nhau giữa máy khách và máy chủ thì trình duyệt của bạn sẽ mặc nhiên thừa nhận địa chỉ IP đó đến từ Server của chính Website mà bạn muốn truy cập mà không hề có biện pháp xác thực nào. Các thông tin được chuyển đi qua giao thức HTTP (bao gồm địa chỉ IP của bạn, các thông tin mà bạn nhập liệu trên Website…) cũng không hề được mã hóa và bảo mật, và đây chính là lỗ hổng bảo mật để giúp các kẻ xấu (được biết đến với cái tên Hackers) sẽ tận dụng để lấy cắp thông tin khách hàng của bạn, thậm chí các thông tin tài khoản truy cập của bạn, từ đó những kẻ xấu này sẽ sử dụng cho các ý đồ không tốt đến hoạt động kinh doanh của Bạn hoặc lấy cắp tiền từ ngân hàng của bạn hoặc đơn giản là làm cho website của bạn có thể bị đánh sập.
Để khắc phục những nhược điểm cực kỳ nguy hiểm này của giao thức http thì https sẽ là một giải pháp hữu hiệu để thay thế, vậy thì https là gì? Mời bạn theo dõi chi tiết ở mục tiếp theo.
Hình 2: Kết nối không an toàn với giao thức http
3. Https là gì?
Https là chữ cái đầu của các từ tiếng Anh "Hypertext Transfer Protocol Secure". Đây là một sự kết hợp giữa giao thức Http và giao thức bảo mật SSL (Secure Sockets Layer) hay TLS (Transport Layer Security). Https giúp cho việc trao đổi thông tin được bảo mật một cách một cách tuyệt đối trên nền tảng Internet.
Khác với Http, Https sẽ hỗ trợ việc xác thực tính chính danh của các website mà người dùng truy nhập thông qua việc kiểm tra xác thực bảo mật (security certificate). Các xác thực bảo mật này được cung cấp và xác minh bởi các đơn vị chứng thực CA (Certificate Authority) có uy tín. Với các xác thực từ các đơn vị xác thực CA, người sử dụng có thể biết rằng mình đã truy nhập đúng vào Website cần truy nhập chứ không phải một Website giả danh bất kỳ nào khác.
Ngoài ra, các phiên kết nối giữa trình duyệt của bạn tới máy chủ Server đều sẽ được mã hóa. Qua đó các hacker sẽ không thể biết được địa chỉ IP của bạn và những thông tin nhập liệu về tài khoản của bạn trên website, từ đó bạn sẽ tránh được các đợt tấn công đến từ các hacker này. Tuy nhiên, Https không đem đến sự an toàn tuyệt đối nhưng nó sẽ là biện pháp bảo mật hữu hiệu thay vì việc sử dụng giao thức http chứa đầy những rủi ro cho người dùng.
Hình 3: Kết nối an toàn với giao thức https
4. Các bước thiết lập giao thức Https cho website
Các bước thiết lập giao thức Https cho website được trình bày ở bên dưới chỉ áp dụng cho các website được cài đặt trên các máy chủ ảo VPS hoặc các máy chủ "thật", áp dụng cho cả hệ điều hành Linux, Ubuntu và CentOS.
Trường hợp website của Bạn được cài đặt trên Host chia sẻ thì bạn hãy liên hệ nhà cung cấp hosting để họ hỗ trợ bạn thiết lập giao thức https này. Sau đó hãy tiến hành thực hiện theo bước 4.10 để có thể sử dụng được giao thức Https cho website của Bạn.
Với phương châm tiết kiệm chi phí mà vẫn đạt hiệu quả tối ưu như mong muốn, Uy sẽ hướng dẫn bạn cách thiết lập Https thông qua cài đặt chứng chỉ bảo mật SSL miễn phí với Let’s Encrypt cho website của Bạn, qua đó bạn có thể vào trang quản trị bằng https mà không gặp lỗi phát sinh nào.
4.1. Bước 1: Truy cập trình quản trị Hosting website thông qua ứng dụng CPANEL
Trước tiên, Bạn cần truy cập vào trình quản trị Hosting website của bạn thông qua ứng dụng CPANEL, sau đó kích chuột vào tab Web => Edit Domain => SSL Support như hình dưới:
(Trong trường hợp này, Uy đang sử dụng trình quản trị hosting VestaCP - Một trình quản trị hosting thông dụng trên thế giới)
Hình 4: Màn hình thiết lập chế độ hỗ trợ chứng chỉ SSL từ ứng dụng quản trị hosting
4.2. Bước 2: Truy cập vào máy chủ qua SSH bằng tài khoản root
Để truy cập vào máy chủ qua SSH (Secure Shell - Giao thức điều khiển từ xa cho phép người dùng kiểm soát và chỉnh sửa server từ xa qua Internet), Bạn cần sử dụng phần mềm PuTTY, nếu chưa cài đặt phần mềm này thì Bạn có thể tải bản mới nhất về thông qua liên kết sau: Tải phần mềm PuTTY.
Hình 5: Màn hình truy cập máy chủ qua SSH thông qua phần mềm PuTTY
Tại cửa sổ trên, bạn nhập địa chỉ IP máy chủ chứa code website của Bạn vào ô Hot Name (or IP address) và nhập cổng truy cập vào máy chủ tại ô Port sau đó nhấn nút Open để bắt đầu truy cập.
Ở cửa sổ tiếp theo, bạn cần nhập Tên tài khoản truy cập (thường là root) và mật khẩu truy cập vào máy chủ, nếu thông tin chính xác bạn sẽ được chuyển tới cửa sổ điều khiển máy chủ từ xa thông qua phần mềm này.
Hình 6: Màn hình điều khiển máy chủ qua SSH sau khi đã đăng nhập vào máy chủ thành công
4.3. Bước 3: Dừng ứng dụng Apache và NGINX chạy trên máy chủ
Tại vị trí của con trỏ chuột như hình trên, bạn gõ lệnh sau để dừng ứng dụng Apache và NGINX chạy trên máy chủ:
service httpd stop
service nginx stop
4.4. Bước 4: Cài đặt ứng dụng Lets Encrypt trên máy chủ
Gõ lệnh sau để cài đặt ứng dụng Lets Encrypt trên máy chủ:
yum install git -y
git clone https://github.com/letsencrypt/letsencrypt /opt/le
Chú ý: Nếu trước đó đã cài đặt ứng dụng Lets Encrypt rồi thì bạn bỏ qua bước này.
4.5. Bước 5: Di chuyển tới thư mục /opt/le
Bằng cách gõ lệnh: cd /opt/le
4.6. Bước 6: Tạo chứng chỉ SSL cho domain (tên miền website) mà bạn cần tạo
Bằng cách gõ lệnh sau:
/opt/le/letsencrypt-auto certonly --standalone -d HoangQuocUy.com
Chú ý: Bạn hãy thay domain HoangQuocUy.com thành domain ứng với website của Bạn.
4.7. Bước 7: Tự động gia hạn chứng chỉ SSL
Khi sử dụng chứng chỉ bảo mật SSL miễn phí với Let’s Encrypt thì bạn chỉ được dùng miễn phí trong 90 ngày, sau 90 ngày bạn cần phải tiến hành tạo mới thì mới tiếp tục sử dụng giao thức Https miễn phí được. Để tự động gia hạn chứng chỉ bảo mật SSL (tức duy trì giao thức Https) thì bạn cần phải thực hiện các lệnh sau ở bước này:
+ Gõ lệnh crontab -e
+ Tiếp theo Bạn cần chèn đoạn sau vào dưới cuối cùng để tự động gia hạn mỗi 90 ngày:
* * */90 * * /opt/le/letsencrypt-auto renew >/dev/null 2>&1
+ Lưu các thiết lập vừa thực hiện ở bước này và thoát khỏi chế độ soạn thảo bằng cách lần lượt nhấn các phím:
esc -> : --> wq --> enter
4.8. Bước 8: Lấy chứng chỉ SSl
4.8.1. Gõ lệnh sau:
cat /etc/letsencrypt/live/HoangQuocUy.com/cert.pem
Tiếp theo bạn cần copy toàn bộ phần nội dung hiển thị sau lệnh trên và dán nó vào phần SSL Certificate ở cửa sổ trong mục 4.1;
4.8.2. Gõ lệnh sau:
cat /etc/letsencrypt/live/HoangQuocUy.com/privkey.pem
Tiếp theo bạn cần copy toàn bộ phần nội dung hiển thị sau lệnh trên và dán nó vào phần SSL Key ở cửa sổ trong mục 4.1;
4.8.3. Gõ lệnh sau:
cat /etc/letsencrypt/live/HoangQuocUy.com/fullchain.pem
Tiếp theo bạn cần copy toàn bộ phần nội dung hiển thị sau lệnh trên và dán nó vào phần SSL Certificate Authority / Intermediate ở cửa sổ trong mục 4.1;
Chú ý: Bạn hãy thay domain HoangQuocUy.com thành domain ứng với website của Bạn.
Hình 7: Kết quả sau khi thực hiện lấy chứng chỉ SSL
=> Ở cửa sổ này, Bạn nhấn nút Save để lưu mọi thông tin chứng chỉ SSL vừa lấy được vào hệ thống máy chủ.
4.9. Bước 9: Khởi động lại VestaCP
Bằng cách gõ lệnh sau để khởi động lại VestaCP cũng như khởi động lại ứng dụng Apache và NGINX chạy trên máy chủ:
service vesta restart
4.10. Bước 10: Thiết lập đoạn lệnh sau trong file .htaccess ở thư mục gốc trên hosting
4.10.1. Truy cập vào Hosting chứa code website với phần mềm FileZilla Client
Nếu chưa cài đặt phần mềm này thì bạn có thể tải về từ liên kết sau đây và cài đặt nó: Phần mềm truy cập Hosting FileZilla Client.
Hình 8: Truy cập vào thư mục gốc của Hosting nơi chứa code website
4.10.2. Nhập đoạn lệnh sau vào file .httacess
Tiếp theo bạn mở file .Httacess như được bôi xanh trong hộp hình chữ nhật mầu đỏ ở hình trên và gõ lệnh được đóng khung đỏ trong hình dưới vào file này, rồi tiến hành lưu lại.
Như vậy đến đây bạn đã hoàn thành song việc thiết lập giao thức Https cho website của Bạn, giờ đây khi bạn gõ tên miền ứng với website của bạn thì website của Bạn sẽ được hiển thị tương tự như trong hình 3 ở trên.
Mọi thắc mắc, bạn vui lòng để lại lời bình trong khu vực tạo lời bình dưới bài viết này để được giải đáp.
Chúc bạn thành công!
@PS: Để theo dõi đầy đủ nội dung bài viết "Hướng dẫn chi tiết cách thiết lập giao thức https cho website" bao gồm cả hình ảnh minh họa, video...Bạn vui lòng xem thêm tại website cá nhân của Uy.
(Nguồn: HoangQuocUy.com)