Annotation of embedaddon/curl/tests/certs/scripts/genserv.sh, revision 1.1

1.1     ! misho       1: #!/bin/bash
        !             2: 
        !             3: # (c) CopyRight 2000 - 2020, EdelWeb for EdelKey and OpenEvidence
        !             4: # Author: Peter Sylvester
        !             5: 
        !             6: # "libre" for integration with curl
        !             7: 
        !             8: OPENSSL=openssl
        !             9: if [ -f /usr/local/ssl/bin/openssl ] ; then
        !            10:    OPENSSL=/usr/local/ssl/bin/openssl
        !            11: fi
        !            12: 
        !            13: USAGE="echo Usage is genserv.sh <prefix> <caprefix>"
        !            14: 
        !            15: HOME=`pwd`
        !            16: cd $HOME
        !            17: 
        !            18: KEYSIZE=2048
        !            19: DURATION=3000
        !            20: # The -sha256 option was introduced in OpenSSL 1.0.1
        !            21: DIGESTALGO=-sha256
        !            22: 
        !            23: REQ=YES
        !            24: P12=NO
        !            25: DHP=NO
        !            26: 
        !            27: PREFIX=$1
        !            28: if [ ".$PREFIX" = . ] ; then
        !            29:    echo No configuration prefix
        !            30:    NOTOK=1
        !            31: else
        !            32:    if [ ! -f $PREFIX-sv.prm ] ; then
        !            33:       echo No configuration file $PREFIX-sv.prm
        !            34:       NOTOK=1
        !            35:    fi
        !            36: fi
        !            37: 
        !            38: CAPREFIX=$2
        !            39: if [ ".$CAPREFIX" = . ] ; then
        !            40:    echo No CA prefix
        !            41:    NOTOK=1
        !            42: else
        !            43:    if [ ! -f $CAPREFIX-ca.cacert ] ; then
        !            44:       echo No CA certificate file $CAPREFIX-ca.caert
        !            45:       NOTOK=1
        !            46:    fi
        !            47:    if [ ! -f $CAPREFIX-ca.key ] ; then
        !            48:       echo No $CAPREFIX key
        !            49:       NOTOK=1
        !            50:    fi
        !            51: fi
        !            52: 
        !            53: if [ ".$NOTOK" != . ] ; then
        !            54:    echo "Sorry, I can't do that for you."
        !            55:    $USAGE
        !            56:    exit
        !            57: fi
        !            58: 
        !            59: if [ ".$SERIAL" = . ] ; then
        !            60:    GETSERIAL="\$t = time ;\$d =  \$t . substr(\$t+$$ ,-4,4)-1;print \$d"
        !            61:    SERIAL=`/usr/bin/env perl -e "$GETSERIAL"`
        !            62: fi
        !            63: 
        !            64: echo SERIAL=$SERIAL PREFIX=$PREFIX CAPREFIX=$CAPREFIX DURATION=$DURATION KEYSIZE=$KEYSIZE
        !            65: 
        !            66: if [ "$DHP." = YES. ] ; then
        !            67:    echo "openssl dhparam -2 -out $PREFIX-sv.dhp $KEYSIZE"
        !            68:    $OPENSSL dhparam -2 -out $PREFIX-sv.dhp $KEYSIZE
        !            69: fi
        !            70: 
        !            71: if [ "$REQ." = YES. ] ; then
        !            72:    echo "openssl req -config $PREFIX-sv.prm -newkey rsa:$KEYSIZE -keyout $PREFIX-sv.key -out $PREFIX-sv.csr -passout XXX"
        !            73:    $OPENSSL req -config $PREFIX-sv.prm -newkey rsa:$KEYSIZE -keyout $PREFIX-sv.key -out $PREFIX-sv.csr -passout pass:secret
        !            74: fi
        !            75: 
        !            76: echo "openssl rsa -in $PREFIX-sv.key -out $PREFIX-sv.key"
        !            77: $OPENSSL rsa -in $PREFIX-sv.key -out $PREFIX-sv.key -passin pass:secret
        !            78: echo pseudo secrets generated
        !            79: 
        !            80: echo "openssl rsa -in $PREFIX-sv.key -pubout -outform DER -out $PREFIX-sv.pub.der"
        !            81: $OPENSSL rsa -in $PREFIX-sv.key -pubout -outform DER -out $PREFIX-sv.pub.der
        !            82: 
        !            83: echo "openssl rsa -in $PREFIX-sv.key -pubout -outform PEM -out $PREFIX-sv.pub.pem"
        !            84: $OPENSSL rsa -in $PREFIX-sv.key -pubout -outform PEM -out $PREFIX-sv.pub.pem
        !            85: 
        !            86: echo "openssl x509 -set_serial $SERIAL -extfile $PREFIX-sv.prm -days $DURATION  -CA $CAPREFIX-ca.cacert -CAkey $CAPREFIX-ca.key -in $PREFIX-sv.csr -req -text -nameopt multiline $DIGESTALGO > $PREFIX-sv.crt "
        !            87: 
        !            88: $OPENSSL x509 -set_serial $SERIAL -extfile $PREFIX-sv.prm -days $DURATION  -CA $CAPREFIX-ca.cacert -CAkey $CAPREFIX-ca.key -in $PREFIX-sv.csr -req -text -nameopt multiline $DIGESTALGO > $PREFIX-sv.crt
        !            89: 
        !            90: if [ "$P12." = YES. ] ; then
        !            91: 
        !            92:    echo "$OPENSSL pkcs12 -export -des3 -out $PREFIX-sv.p12 -caname $CAPREFIX -name $PREFIX -inkey $PREFIX-sv.key -in $PREFIX-sv.crt -certfile $CAPREFIX-ca.crt "
        !            93: 
        !            94:    $OPENSSL pkcs12 -export -des3 -out $PREFIX-sv.p12 -caname $CAPREFIX -name $PREFIX -inkey $PREFIX-sv.key -in $PREFIX-sv.crt -certfile $CAPREFIX-ca.crt
        !            95: fi
        !            96: 
        !            97: echo "openssl x509 -noout -text -hash -in $PREFIX-sv.selfcert -nameopt multiline"
        !            98: $OPENSSL x509 -noout -text -hash -in $PREFIX-sv.crt -nameopt multiline
        !            99: 
        !           100: # revoke server cert
        !           101: touch $CAPREFIX-ca.db
        !           102: echo 01 > $CAPREFIX-ca.cnt
        !           103: echo "openssl ca -config $CAPREFIX-ca.cnf -revoke $PREFIX-sv.crt"
        !           104: $OPENSSL ca -config $CAPREFIX-ca.cnf -revoke $PREFIX-sv.crt
        !           105: 
        !           106: # issue CRL
        !           107: echo "openssl ca -config $CAPREFIX-ca.cnf -gencrl -out $PREFIX-sv.crl"
        !           108: $OPENSSL ca -config $CAPREFIX-ca.cnf -gencrl -out $PREFIX-sv.crl
        !           109: 
        !           110: echo "openssl x509 -in $PREFIX-sv.crt -outform der -out $PREFIX-sv.der "
        !           111: $OPENSSL x509 -in $PREFIX-sv.crt -outform der -out $PREFIX-sv.der
        !           112: 
        !           113: # all together now
        !           114: touch $PREFIX-sv.dhp
        !           115: cat $PREFIX-sv.prm $PREFIX-sv.key  $PREFIX-sv.crt $PREFIX-sv.dhp >$PREFIX-sv.pem
        !           116: chmod o-r $PREFIX-sv.prm
        !           117: 
        !           118: echo "$PREFIX-sv.pem done"

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>