44 lines
1.5 KiB
Bash
Executable File
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
|