Kloonaaminen
Sulkulistan noutaminen ja kelpoisuuden tarkastaminen voidaan tehdä esimerkiksi seuraavanlaisella skriptillä. Skripti hakee sulkulistan HTTP-protokollalla ja kopioi sen toivottuun sijaintiin vain, jos varmentajan allekirjoitus kyetään varmentamaan.
#! /bin/sh
CACERT="/tmp/vrkcqc.pem"
CRLURL="http://proxy.fineid.fi/crl/vrkcqcc.crl"
CRLFILE="/etc/pki/tls/ca-bundle-client.crl"
TMP=`cat /dev/urandom | tr -cd 'a-f0-9' | head -c 32`
curl -s $CRLURL -o /tmp/$TMP.crl
openssl crl -inform DER -in /tmp/$TMP.crl -outform PEM -out /tmp/$TMP.pem
VERIFY=$(openssl crl -in /tmp/$TMP.pem -CAfile $CACERT -noout 2>&1)
if [ "$VERIFY" = "verify OK" ]
then
# CRL seems ok
cp /tmp/$TMP.pem $CRLFILE
fi
rm /tmp/$TMP.crl
rm /tmp/$TMP.pem
Jos sulkulista halutaan hakea LDAP-protokollalla, se onnistuu korvaamalla curl-komento ldapsearch-komennolla.
#curl -s $CRLURL -o /tmp/$TMP.crl
LDAPCERT=`ldapsearch -o ldif-wrap=no -x -t -LLL -h ldap.fineid.fi -b "cn=VRK CA for Qualified Certificates,ou=Organisaatiovarmenteet,o=Vaestorekisterikeskus CA,dmdName=FINEID,c=FI" "certificaterevocationlist;binary" | awk -F 'file://' '{print $2}'`
cp $LDAPCERT /tmp/$TMP.crl
rm $LDAPCERT
Ldapsearchin heikkoutena on, että se ei osaa tulostaa binäärikenttiä suoraan syötteeseen, josta se olisi helppo putkittaa tiedostoon. Suositeltavaa onkin antaa työkalun tallentaa kentän sisältö väliaikaistiedostojen hakemistoon (oletuksena /tmp/) ja lukea tiedot sieltä.
OCSP provider
transparentti proxy?
proxy -> IP-kikka