0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Hướng Dẫn Chi Tiết Về SSL (Secure Sockets Layer) và Cách Tạo Chứng Chỉ SSL Trên Linux

Đăng vào 1 tháng trước

• 2 phút đọc

SSL (Secure Sockets Layer) là một công nghệ quan trọng giúp bảo mật thông tin truyền tải giữa máy chủ web và trình duyệt. SSL đảm bảo rằng dữ liệu được truyền đi giữa người dùng và máy chủ luôn được giữ riêng tư và toàn vẹn. Hiện nay, SSL là tiêu chuẩn bảo mật cho hàng triệu website trên toàn thế giới. Dưới đây là quy trình hoạt động của SSL:

  1. Khởi tạo kết nối: Client gửi một thông điệp tới server, chứa thông tin về phiên bản TLS và loại mã hóa mà client hỗ trợ.
  2. Phản hồi từ server: Server phản hồi với thông tin về phiên bản TLS và loại mã hóa cho phiên làm việc, kèm theo chứng chỉ (server cert).
  3. Kiểm tra chứng chỉ: Client kiểm tra chứng chỉ của server bằng cách đối chiếu với root CA đã được cài đặt trên trình duyệt hoặc máy tính của mình.
  4. Gửi khóa tiền bí mật: Sau khi xác thực chứng chỉ server, client gửi một khóa tiền bí mật (pre-master key) được mã hóa bằng public key của server (public key lấy từ chứng chỉ server).
  5. Giải mã khóa tiền bí mật: Server giải mã bằng private key của mình để lấy thông tin khóa tiền bí mật.
  6. Tạo khóa chia sẻ: Cả client và server sẽ tính toán để tạo ra một khóa chia sẻ (shared secret key hay master key).
  7. Xác thực kết nối: Client gửi một thông điệp sử dụng khóa chia sẻ tới server, và server giải mã. Nếu kết quả trùng khớp, kết nối an toàn đã được thiết lập.

Hướng Dẫn Tạo Chứng Chỉ SSL Trên Linux

Để tạo chứng chỉ SSL trên máy chủ Linux, trước tiên hãy cài đặt OpenSSL nếu chưa có:

bash Copy
yum install -y openssl

Tiếp theo, tạo thư mục để chứa các khóa riêng tư:

bash Copy
mkdir /etc/ssl/private
chmod 700 /etc/ssl/private

Sau đó, tiến hành tạo cặp khóa và chứng chỉ SSL tự ký:

bash Copy
openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt -days 365

Giải thích các tùy chọn trong lệnh trên:

  • req: Yêu cầu tạo một chứng chỉ mới trong OpenSSL.
  • -x509: Xác định rằng bạn đang tạo một chứng chỉ tự ký.
  • -newkey rsa:2048: Tạo cặp khóa mới bằng thuật toán RSA với kích thước 2048 bit.
  • -nodes: Bỏ qua tùy chọn bảo vệ chứng chỉ bằng mật khẩu để máy chủ có thể truy cập mà không cần can thiệp.
  • -keyout: Nơi lưu trữ khóa riêng tư.
  • -out: Nơi lưu trữ chứng chỉ SSL được tạo.
  • -days 365: Thời gian chứng chỉ có hiệu lực.

Tiếp theo, tạo nhóm Diffie-Hellman mạnh để đảm bảo an toàn khi trao đổi với client (chờ vài phút).

Sau khi đã tạo chứng chỉ, cấu hình Nginx để sử dụng chứng chỉ SSL thông qua file /etc/nginx/conf.d/ssl.conf. Lưu ý rằng chứng chỉ tự ký sẽ không được chứng nhận bởi bên thứ ba, do đó có thể xuất hiện cảnh báo về độ tin cậy khi truy cập.

Lưu ý: Để kiểm tra ngày hết hạn của chứng chỉ, bạn có thể sử dụng lệnh sau:

bash Copy
openssl -x509 -in /etc/ssl/certs/nginx-selfsigned.crt -noout -dates

source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào