Blame generate-and-sign-cert.sh

cc2683
#!/bin/bash
cc2683
cc2683
set -e
cc2683
cc2683
ACMEUSER="$1"
cc2683
CERTS_DIR="$2"
cc2683
SUBJ="$3"
cc2683
cc2683
if [ -z "$ACMEUSER" ] || [ -z "$CERTS_DIR" ] || [ -z "$SUBJ" ]; then
cc2683
  echo "Usage: $0 acmeuser /mysite/certs/dir/ /CN=mysite.com/CN=www.mysite.com"
cc2683
  exit 0
cc2683
fi
cc2683
cc2683
BASE_DIR=$(cd `dirname "$0"`; pwd)
cc2683
NAME=`date +%Y-%m-%d--%H-%M-%S--%N`
cc2683
PREFIX="$CERTS_DIR/$NAME"
cc2683
cc2683
echo " -------------------------------------------- "
cc2683
echo " begin $PREFIX "
cc2683
echo " -------------------------------------------- "
cc2683
cc2683
mkdir -p "$CERTS_DIR"
cc2683
openssl genrsa -out "$PREFIX.key" 4096
cc2683
openssl req -new -sha512 -key "$PREFIX.key" -out "$PREFIX.csr" -subj "$SUBJ"
cc2683
sudo -u "$ACMEUSER" "$BASE_DIR/sign-cert.py" "$PREFIX.csr" "$PREFIX.crt"
cc2683
cc2683
echo "compare modulus"
cc2683
$MUDULUS_CRT=`openssl x509 -noout -modulus -in "$PREFIX.csr"`
cc2683
$MUDULUS_KEY=`openssl rsa -noout -modulus -in "$PREFIX.key"`
cc2683
if [ "$MODULUS_CRT" != "$MUDULUS_KEY" ]; then
cc2683
  echo "ERROR: modulus of certificate do not matches modulus of key"
cc2683
  exit 1
cc2683
fi
cc2683
echo "ok"
cc2683
cc2683
cd "$CERTS_DIR"
cc2683
ln -fs "$PREFIX.key" "private.key"
cc2683
ln -fs "$PREFIX.key" "public.crt"
cc2683
cc2683
echo " -------------------------------------------- "
cc2683
echo " done $PREFIX "
cc2683
echo " -------------------------------------------- "