Files
openccb/services/lms-service/generate_dev_keys.sh
T

32 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
# Configuration
# Path is relative to the project root where the script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
KEY_DIR="$SCRIPT_DIR/dev_keys"
mkdir -p "$KEY_DIR"
echo "🔐 Generando llaves de desarrollo para LTI..."
# 1. Private Key
openssl genrsa -out "$KEY_DIR/lti_private.pem" 2048
# 2. Public Key
openssl rsa -in "$KEY_DIR/lti_private.pem" -pubout -out "$KEY_DIR/lti_public.pem"
# 3. Extract Modulus (needed for JWKS 'n' parameter)
# Hex format
openssl rsa -in "$KEY_DIR/lti_private.pem" -noout -modulus | cut -d'=' -f2 > "$KEY_DIR/modulus_hex.txt"
# Base64URL format (standard for JWKS)
# We convert the hex modulus to binary and then to base64url
MODULUS_HEX=$(cat "$KEY_DIR/modulus_hex.txt")
python3 -c "import base64; print(base64.urlsafe_b64encode(bytes.fromhex('$MODULUS_HEX')).decode().rstrip('='))" > "$KEY_DIR/modulus_b64.txt"
echo "✅ Llaves generadas en $KEY_DIR"
echo "------------------------------------------------"
echo "Para producción, define las variables de entorno:"
echo "- LTI_PRIVATE_KEY: Contenido completo de lti_private.pem"
echo "- LTI_JWK_N: Contenido de modulus_b64.txt"
echo "------------------------------------------------"