ansible-sample/scripts/make-snakeoil.sh
2026-09-23 14:26:05 +09:00

44 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
DESTDIR=$SCRIPTDIR/../roles/apache/files/cert
KEY_FILE=$DESTDIR/true-snakeoil.key
CRT_FILE=$DESTDIR/true-snakeoil.crt
echo "Generating self-signed SSL certificate..."
if openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
-keyout $DESTDIR/true-snakeoil.key \
-out $DESTDIR/true-snakeoil.crt \
-subj "/C=XX/ST=Default/L=Default/O=Default/CN=default" \
-addext "basicConstraints = CA:FALSE"; then
{
echo "=========================================="
echo " 1. Private Key Info ($KEY_FILE)"
echo "=========================================="
openssl pkey -in "$KEY_FILE" -text -noout
echo ""
echo "=========================================="
echo " 2. Certificate Info ($CRT_FILE)"
echo "=========================================="
openssl x509 -in "$CRT_FILE" -text -noout
echo ""
echo "=========================================="
echo " 3. Modulus Consistency Check (Pair Validation)"
echo "=========================================="
crt_hash=$(openssl x509 -in "$CRT_FILE" -modulus -noout | openssl md5)
key_hash=$(openssl rsa -in "$KEY_FILE" -modulus -noout 2>/dev/null | openssl md5)
echo "Certificate Modulus MD5: $crt_hash"
echo "Private Key Modulus MD5: $key_hash"
if [ "$crt_hash" = "$key_hash" ]; then
echo "Result: MATCH (Key and Certificate belong together)"
else
echo "Result: MISMATCH (ERROR)"
fi
} | less
else
echo "Error: Failed to generate certificate." >&2
exit 1
fi