Annotation of embedaddon/curl/tests/certs/scripts/genserv.sh, revision 1.1.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>