Hướng dẫn thiết lập HTTPS cho Website
From CodeForLife
Contents
Tạo chứng chỉ SSL
Tạo chứng chỉ tự ký (Self sign certificate)
Thường sử dụng để test và cách tạo dễ nhất là bạn sử dụng thư viện OpenSSL. Để thực hiện được các lệnh dưới yêu cầu bạn phải cài đặt Open SSL.
Bạn đánh lệnh sau để tạo Self sign certificate:
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout test.key -out test.crt
Lệnh này sẽ yêu cầu bạn nhập thêm nhiều thông tin như ảnh dưới:
Để đơn giản hơn bạn tạo bash script để chạy như dưới (Chỉ cần thay đổi tên biến DOMAIN với giá trị tên miền của bạn):
#!/bin/bash DOMAIN="localhost" echo "Domain: ${DOMAIN}" SUBJECT="/C=US/ST=CA/O=MyOrg, Inc./CN=${DOMAIN}" echo "Subject: ${SUBJECT}" SAN_CONFIG="[SAN]\nsubjectAltName=DNS:www.${DOMAIN},DNS:test.${DOMAIN}" echo "SAN Config: ${SAN_CONFIG}" openssl req -new -sha256 -key ${DOMAIN}.key -subj "${SUBJECT}" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "\n${SAN_CONFIG}")) -out ${DOMAIN}.csr
Lấy chứng chỉ SSL miễn phí
Điều kiện bắt buộc là bạn phải có tên miền public và đang chạy thật. Vì các trang cung cấp SSL miễn phí yêu cầu bạn xác thực tên miền đúng là của bạn.
Khác biệt giữa SSL miễn phí và có phí:
- SSL miễn phí:
- Không tốn chi phí nào cả
- Thời gian cấp có thể lâu
- Bao giờ giới hạn thời gian sử dụng
- Chỉ chứng nhận bạn là người chủ sở hữu tên miền.
- SSL miễn phí không có Wildcard SSL (chứng chỉ SSL cho các tên miền con). Nếu muốn sử dụng SSL cho subdomain, bạn phải đăng ký mỗi chứng chỉ cho 1 tên miền.
- SSL miễn phí không hỗ trợ các tên miền với nhiều định dạng khác nhau như SSL trả phí. Đơn cử như trường hợp tên miền tiếng Việt chẳng hạn.
- SSL mất phí:
- Tốn tiền mua hàng năm
- Thời gian cấp nhanh hơn
- Thời gian sử dụng do bạn
- Ngoài xác thực tên miền còn vấn đề khác về bảo hành, bảo đảm các vấn đề liên quan đến bảo mật hệ thống.
- Hỗ trợ rất nhiều thứ khác
https://www.sslforfree.com/certificates
Mua chứng chỉ SSL
Search có nhiều trang để bạn mua.
Sử dụng NodeJS để tạo server hỗ trợ HTTPS