#!/bin/bash
# Tạo self-signed TLS certificate cho server (dùng Git Bash / openssl).
# Chạy lại nếu đổi IP LAN của server, hoặc chứng chỉ hết hạn (mặc định 10 năm).
set -e

CERT_DIR="$(dirname "$0")/certs"
LAN_IP="${1:-192.168.100.79}"

mkdir -p "$CERT_DIR"
cd "$CERT_DIR"

cat > san.cnf << EOF
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no

[req_distinguished_name]
C = VN
O = DeviceMgmt Internal
CN = devicemgmt.local

[v3_req]
keyUsage = keyEncipherment, dataEncipherment, digitalSignature
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1 = localhost
DNS.2 = devicemgmt.local
IP.1 = 127.0.0.1
IP.2 = ${LAN_IP}
EOF

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 3650 -nodes -config san.cnf -extensions v3_req

echo ""
echo "Da tao xong cert.pem + key.pem tai: $CERT_DIR"
echo "SHA-256 fingerprint (dung khi cai Agent, dan vao setup.ps1):"
openssl x509 -in cert.pem -noout -fingerprint -sha256
