OCSP

Kohteesta DigiWiki
Versio hetkellä 2. maaliskuuta 2021 kello 09.11 – tehnyt KIVINEN TERO 133366417 (keskustelu | muokkaukset)
Siirry navigaatioon Siirry hakuun

Online Certificate Status Protocol (OCSP) on varmenteen tilan kyselyyn tarkoitettu yhteyskäytäntö.

OCSP:n käyttö openssl:llä

Openssl:llä voi hakea OCSP hakuja ja tarkistaa varmenteen oikeellisuuta.

Urli mistä OCSP haut tehdään löyty varmenteesta itsestään Authority Information Access nimisestä kentästä. Tuon saa haettua openssl:llä esim seuraavasti:

 OCSP=`openssl x509 -in cert.pem -text -noout | fgrep OCSP | sed 's/.*URI://g'`

Kun tuo urli on saatu niin voit tehdä ocsp haun käyttäen seuraavaa komentoa:

 openssl ocsp -CApath certs -issuer certs/vrkcqc3.pem -cert cert.pem -url $OCSP

missä certs hakemistossa on vrkcqc3.pem ja vrkroot2c.pem tiedostot ja niiden symlinkit. Tuon hakemiston saa tehtyä seuraavilla komennoilla.

 mkdir certs
 for i in vrkroot2c vrkcqc3
 do
   echo Fetching http://proxy.fineid.fi/ca/$i.crt
   wget --quiet http://proxy.fineid.fi/ca/$i.crt -O $i.crt
   echo Converting it to pem, and making CApath directory link
   openssl x509 -inform DER -in $i.crt -out certs/$i.pem
   ln -s $i.pem certs/`openssl x509 -noout -hash -in certs/$i.pem`.0
 done

VRK:n varmennehierarkiassa olevien varmenteiden oikeellisuuden tarkistaminen

Seuraavalla scriptillä voi hakea varmenteita VRK:n ldap hakemistosta ja tehdä niille OCSP tarkistukset:

#!/bin/sh

search="(&(givenname=Tero)(sn=Kivinen))"

rm -rf certs
mkdir certs
for i in vrkroot2c vrkcqc3
do
    echo Fetching http://proxy.fineid.fi/ca/$i.crt
    wget --quiet http://proxy.fineid.fi/ca/$i.crt -O $i.crt
    echo Converting it to pem, and making CApath directory link
    openssl x509 -inform DER -in $i.crt -out certs/$i.pem
    ln -s $i.pem certs/`openssl x509 -noout -hash -in certs/$i.pem`.0
done
num=0
ldapsearch -x -h ldap.fineid.fi -b dmdName=fineid,c=fi "$search" usercertificate | \
    sed -n '1x;1!H;${g;s/\n  *//g;p}' | \
    fgrep 'usercertificate;binary::' | \
    while read cert
    do
        num=`expr $num + 1`
        a=`echo $cert | sed 's/.*:: //g'`
        (echo '-----BEGIN X509 CERTIFICATE-----' ;
         echo $a;
         echo '-----END X509 CERTIFICATE-----') > cert$num.pem

        SUBJECT=`openssl x509 -in cert$num.pem -text -noout | fgrep Subject: | sed 's/.*Subject:://g'`
        OCSP=`openssl x509 -in cert$num.pem -text -noout | fgrep OCSP | sed 's/.*URI://g'`
        echo Subject: $SUBJECT
        echo OCPS link: $OCSP
        openssl ocsp -CApath certs -issuer certs/vrkcqc3.pem -cert cert$num.pem -url $OCSP
    done

Ja jos tuon ajaa tulee tuloksena seuraavaa:

Fetching http://proxy.fineid.fi/ca/vrkroot2c.crt
Converting it to pem, and making CApath directory link
Fetching http://proxy.fineid.fi/ca/vrkcqc3.crt
Converting it to pem, and making CApath directory link
Subject: Subject: C = FI, serialNumber = 14683812B, GN = TERO, SN = KIVINEN, CN = KIVINEN TERO 14683812B
OCPS link: http://ocsp.fineid.fi/vrkcqc2
Responder Error: unauthorized (6)
Subject: Subject: C = FI, serialNumber = 13991724X, GN = TERO, SN = KIVINEN, CN = KIVINEN TERO 13991724X
OCPS link: http://ocsp.fineid.fi/vrkcqc3
Response verify OK
cert2.pem: good
        This Update: Mar  2 08:24:21 2021 GMT
        Next Update: Mar  2 16:24:21 2021 GMT
Subject: Subject: C = FI, serialNumber = 133366417, GN = TERO, SN = KIVINEN, CN = KIVINEN TERO 133366417
OCPS link: http://ocsp.fineid.fi/vrkcqc3
Response verify OK
cert3.pem: good
        This Update: Mar  2 08:24:21 2021 GMT
        Next Update: Mar  2 16:24:21 2021 GMT


Katso myös

https://tools.ietf.org/html/rfc6960