summaryrefslogtreecommitdiffstats
path: root/skripti/sigenca/zahtevaj.sh
blob: f6405bb5c05c4f4a8c694ee938412f8d0a8ce764 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash
set -xeuo pipefail
umask 0077
if [ ! $# -eq 1 ]
then
	cat <<EOF
kot prvi argument bi morali navesti pot do datoteke s CSR, ki ga generirate s skriptom generiraj.sh.
EOF
	exit 1
fi
read -p "vnesite avtorizacijsko kodo (poslana kot AAAA-AAAA-AAAA po fizični pošti): " avt
csr=`cat $1`
p=`rev <<<$0 | cut -d/ -f1 | rev`
t=`mktemp -p "" $p.XXX` # da se shrani odgovor s certom na disk
curl -i -X POST https://www.si-trust.gov.si/SigenCA2/cda-cgi/clientcgi --data-urlencode "reference_number=`openssl asn1parse <<<$csr | grep -A1 commonName | tail -n1 | rev | cut -d: -f1 | rev`" --data-urlencode authcode@<(echo -n $avt) --data-urlencode "retrievedAs=rawDER" --data-urlencode "action=getServerCert" --data-urlencode "pkcs10Request=$csr" --output $t
function napaka () {
	echo mogoče se je zgodila napaka pri pridobivanju certifikata. če se je, verjetno zgoraj piše razlog ^^^
}
grep -P '^\t*<b>' $t && napaka # ne vem kaj je point te vrstice
[ ! `head -n1 < $t | cut -d\  -f2` = 200 ] && napaka
echo če se certifikat slučajno ni pravilno izluščil iz odziva na standardni izhod, sem izhod shranil v $t
echo -----BEGIN CERTIFICATE-----
grep certCopy $t | cut -d\" -f6
echo -----END CERTIFICATE-----