Forked from
DM / dm-docs
261 commits behind, 771 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
dm_create_user_cert.sh 1.09 KiB
#!/bin/bash
# Set root/run directories
if [ -z $DM_ROOT_DIR ]; then
cd $sbindir/..
export DM_ROOT_DIR=`pwd`
fi
if [ -z $DM_INSTALL_DIR ]; then
cd $DM_ROOT_DIR/..
export DM_INSTALL_DIR=`pwd`
fi
CA_ROOT=$DM_INSTALL_DIR/etc/CA
CA_CONFIG=$DM_ROOT_DIR/etc/dm.openssl.conf
LOG_FILE=/tmp/dm-user-cert.log.$$
USERNAME=$1
USER_CN=$2
USER_EMAIL=$3
if [ $# -ne 3 ]; then
echo "Usage: $0 <username> <user cn> <user email>"
exit 1
fi
CERT_DIR=$CA_ROOT/certs
CERT_REQ_DIR=$CA_ROOT/certreqs
REQUEST_CMD="openssl req -days 3650 -nodes -new -keyout $CERT_DIR/$USERNAME.key -out $CERT_REQ_DIR/$USERNAME.csr -config $CA_CONFIG"
SIGN_CMD="openssl ca -days 3650 -out $CERT_DIR/$USERNAME.crt -in $CERT_REQ_DIR/$USERNAME.csr -config $CA_CONFIG"
$REQUEST_CMD >> $LOG_FILE 2>&1 << EOF
$USER_CN
$USER_EMAIL
EOF
if [ $? -ne 0 ]; then
echo "Error creating server certificate, check '$LOG_FILE'."
exit -1
fi
$SIGN_CMD >> $LOG_FILE 2>&1 << EOF
y
y
EOF
if [ $? -eq 0 ]; then
chmod 400 $CERT_DIR/*
exit 0
else
echo "Error creating server certificate, check '$LOG_FILE'."
exit -1
fi