X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/906a79a6b13c8e20cfd8fd38e937f0c4e79318ff..9e3f2290d1fddb64c59de3d265e9228a334e9682:/scripts/domtool-addcert diff --git a/scripts/domtool-addcert b/scripts/domtool-addcert index 3fb6b82..25533b1 100755 --- a/scripts/domtool-addcert +++ b/scripts/domtool-addcert @@ -6,30 +6,52 @@ if test -z "$USER"; then exit 1 fi - KEYDIR=/afs/hcoop.net/common/etc/domtool/keys/$1 + KEYDIR=`domtool-config -path cert keys`/$USER KEYFILE=$KEYDIR/key.pem -CERTFILE=/afs/hcoop.net/common/etc/domtool/certs/$1.pem +CERTFILE=`domtool-config -path cert certs`/$USER.pem NEWREQ=~/.newreq.pem NEW=~/.new.pem KEYIN=~/.keyin + CACONF=`domtool-config -path cert ca`/domtool-openssl.conf -mkdir -p $KEYDIR -openssl genrsa -out $KEYFILE -chown -R domtool.domtool $KEYDIR -fs sa $KEYDIR $USER read +mkdir $KEYDIR || echo Key directory already exists. +openssl genrsa -out $KEYFILE 4096 +# chown -R domtool.nogroup $KEYDIR +# chmod for non-afs systems +chmod 700 $KEYDIR +chmod 600 $KEYFILE +if [ "$2" != '-unsafe' ]; then + if [ -z "`getent passwd $USER`" ]; then + echo "$USER does not exist. This must be a server principal." + else + chown -R $USER.nogroup $KEYDIR + fi +fi + +fs sa $KEYDIR $USER read || echo This must be a server principal. echo "." >$KEYIN echo "." >>$KEYIN echo "." >>$KEYIN echo "." >>$KEYIN echo "." >>$KEYIN echo "$USER" >>$KEYIN -echo "$USER@hcoop.net" >>$KEYIN +# fixme: domtool-config -domain +echo "$USER@`domtool-config -domain`" >>$KEYIN echo "" >>$KEYIN echo "" >>$KEYIN openssl req -new -key $KEYFILE -out $NEWREQ -days 365 <$KEYIN rm $KEYIN cat $NEWREQ $KEYFILE >$NEW rm $NEWREQ -openssl ca -batch -config /etc/domtool/openssl.cnf -policy policy_anything -out $CERTFILE -infiles $NEW + +ROOTCMD="" +# Insecure CA is OK for development, and if the CA is in afs it is +# assumed the script is being run with sufficient +# permissions. Otherwise, become root to use the ca private key, +if [ ! -r $CACONF ]; then + ROOTCMD=sudo +fi + +$ROOTCMD openssl ca -batch -config `domtool-config -path cert ca`/domtool-openssl.conf -out $CERTFILE -infiles $NEW rm $NEW -chown domtool.domtool $CERTFILE +#chown domtool.nogroup $CERTFILE