#!/usr/bin/env bash # # 生成 RS256 密钥对,输出可直接追加到 config/iam-jwt.properties 的内容。 # # bash scripts/gen-iam-key.sh >> config/iam-jwt.properties # # 需要 openssl 与 JDK 25 的 keytool 不冲突:这里统一用 openssl, # 生成的是 PKCS#8 私钥 + X.509 公钥,正好是 IamJwtConfig 期望的格式。 # set -euo pipefail WORK_DIR="$(mktemp -d)" trap 'rm -rf "$WORK_DIR"' EXIT openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out "$WORK_DIR/private.pem" 2>/dev/null openssl rsa -in "$WORK_DIR/private.pem" -pubout -out "$WORK_DIR/public.pem" 2>/dev/null # properties 文件里换行需要转义,这里直接压成单行交给 IamJwtConfig 解析 PRIVATE_KEY="$(awk 'BEGIN{ORS=""} {print}' "$WORK_DIR/private.pem")" PUBLIC_KEY="$(awk 'BEGIN{ORS=""} {print}' "$WORK_DIR/public.pem")" cat <