Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagexml
    <bean id="certificateRevocationCleanUp" class="dk.nsi.nsp.cra.CertificateRevocationCleanUpImpl">
        <constructor-arg ref="certificateRevocationStoreDatabase"/>
        <constructor-arg ref="certificateRevocationSources"/>
        <constructor-arg ref="status"/>
        <!--  Activate cleanup functionality -->
        <property name="cleanActivated" value="true" />
        <property name="cleanIfRootExpiredActivated" value="true" />
        <property name="cleanIfIntermediateExpiredActivated" value="true" />
        <property name="cleanIfGhostUrlActivated" value="true" />
        <property name="cleanIfGhostSerialNumberActivated" value="true" />
    </bean>


Opsætning af FetchIntermediateCraJob til brug ifm. hent og gem intermediate CA certifikater.

Code Block
languagexml
    <bean id="caIntermediateCertificateStoreDatabase" class="dk.nsi.nsp.cra.db.DBCaIntermediateCertificateStore">
        <constructor-arg ref="cra.db"/>
    </bean>
  
    <bean id="caIntermediateCertificateFetch" class="dk.nsi.nsp.cra.CaIntermediateCertificateFetchImpl">
		<constructor-arg ref="caIntermediateCertificateStoreDatabase"/>
        <constructor-arg ref="caIntermediateCertificateSources"/>
    </bean>    

bootstrap.xml

Heri defineres de CRS’er der skal bruges til at bootstrappe CRA. For hver CRS der defineres vil CRA læse den konfigurerede CRL samt alle CRL’er fra certifikaterne i certifikatkæden. Der er to måder at konfigurere en CRS. Enten vd at angive et slutbruger certifikat eller ved direkte at angive en url til en CRL og dens tilhørende certifikat. For hver caIntermediateCertificateSources der defineres vil CRA hente de angivne certifikat.

Keystore CRS

Code Block
languagexml
   <bean id="testCertificateRevocationSource" class="dk.nsi.nsp.cra.bootstrap.KeyStoreCertificateRevocationSource">
        <constructor-arg>
            <bean id="testKeystore" class="java.io.File">
                <constructor-arg value="/pack/cra/cra-test.keystore" type="java.lang.String" />
            </bean>
        </constructor-arg>
        <constructor-arg value="!234Qwer" type="java.lang.String" />
        <constructor-arg value="SOSI:ALIAS_SYSTEM" type="java.lang.String" />
        <constructor-arg ref="certificateResolver"/>
        <constructor-arg value="PT5M" type="java.lang.String"/>
    </bean>

Måden en KeyStoreCertificateRevocationSource konstrueres på, er ved at tage den offentlige del af et certifikat og gemme det i en Java Keystore fil. Filen, aliaset og kodeordet til filen (Ikke til den private nøgle) konfigureres derefter som de tre første constructor-arg's til en KeyStoreCertificateRevocationSource. Det sidste argument skal altid være certificateResolver. Her efter følger argumentet "certificateResolver". Sidste argument angiver den periode der skal tillægges NextUpdate. Perioden angives i ISO-8601 format. Dvs. hvis perioden skal være 5 minutter, så angives den som "PT5M".

For at aktivere en CRS tilføjes den til listen certificateRevocationSources.

...

Code Block
languagexml
    <bean id="systemtest10CertificateRevocationSource" class="dk.nsi.nsp.cra.bootstrap.RemoteCertificateRevocationSource">
        <constructor-arg value="http://m.aia.systemtest10.trust2408.com/systemtest10-ca.cer" type="java.lang.String" />
        <constructor-arg value="http://crl.systemtest10.trust2408.com/systemtest10.crl" type="java.lang.String" />
        <constructor-arg ref="certificateStore"/>
        <constructor-arg ref="certificateResolver"/>
        <constructor-arg value="PT5M" type="java.lang.String"/>
    </bean>

Hvis man ikke har et certifikat udstedt af den CA man ønsker at tilføje kan en RemoteCertificateRevocationSource konstrueres ved at angive URL’en til CA certificatet og URL’en til den CRL der er signeret af CA’en som de to første constructor-arg's. De to sidste argumenter skal altid være certificateStore og certificateResolverHer efter følger argumenterne "certificateStore" og "certificateResolver". Sidste argument angiver den periode der skal tillægges NextUpdate. Perioden angives i ISO-8601 format. Dvs. hvis perioden skal være 5 minutter, så angives den som "PT5M".

For at aktivere en CRS tilføjes den til listen certificateRevocationSources.

Intermediate CA certifikater

Code Block
languagexml
    <util:list id="caIntermediateCertificateSources" value-type="dk.nsi.nsp.cra.bootstrap.CaIntermediateCertificateSource">
    	<value>http://ca1.cti-gov.dk/oces/issuing/1/cacert/issuing.cer</value>
    </util:list>

Logning

CRA logger til filen cra.log

Der benyttes en rolling file appender, hvor størrelsen af log filerne og antallet af gemte log filer konfigureres med de to environment variable: LOG_MAX_FILE_SIZE og LOG_MAX_BACKUP_INDEX.

Overvågning

Der er følgende muligheder for at overvåge CRA.

...

URLBeskrivelse
<serverurl>/cra/statusViser en statussiden statusside hvis servicen er ok, og der vil være information om hvilken aktivitet der har været. Data tages fra cachen og databasen for hvert opkald.
<serverurl>/cra/versionViser den kørende version af CRA

<serverurl>/cra/job/revokeUpdate/start

Denne URL starter opdateringen af revokeringslisterne inkl indlæsning af cache.

<serverurl>/cra/job/revokeUpdate/status

Denne URL viser status af det seneste udførte revokeUpdate job

<serverurl>/cra/job/cleanupRevocationLists/start

Denne URL starter oprydning af revokeringslisterne

<serverurl>/cra/job/cleanupRevocationLists/status

Denne URL viser status af det seneste udførte cleanupRevocationLists job

<serverurl>/cra/job/fetchIntermediateCert/start

Denne URL starter hent af CA Intermediate Certificaterne

<serverurl>/cra/job/fetchIntermediateCert/status

Denne URL viser status af det seneste udførte FetchIntermediateCra  job

Oprydning

Der kan foretages løbende oprydning i historikken af revokerede certifikater, som findes i en given spærreliste, og hvis de ikke længere fremgår, så fjernes de.

Oprydning kan aktiveres af driften ved at kalde oprydningsjobbet.

Der er oprettet 4 forskellige oprydninger, som kan aktiveres og vil blive udført, hvis jobbet aktiveres:

  • cleanIfRootExpiredActivated
    Hvis et rodcertifikatet fra certificateRevocationSources (Se bootstap.xml) er udløbet, så findes id fra crl tabellen vha. certifikatets url (Se Endpoints), og bruges til at slette rækker fra revoked vha. crlid (Se Revokeringer).
    Hvis der er et tilhørende intermediatecertifikat, så slettes det også på samme måde, som for rodcertifikatet.
  • cleanIfIntermediateExpiredActivated
    Hvis ikke rodcertifikatet er udløbet, så checkes det om intermediatecertifikat er udløbet. Hvis det er udløbet, så slettes det på samme måde, som beskrevet for rodcertifikat.
  • cleanIfGhostUrlActivated
    Hvis ikke rod- eller intermediatecertifikatet er expired. Så finder vi alle aktive url'er (både for rod- og intermediatecertifikater) fra certificateRevocationSources (Se Endpoints). Oplysninger tilknyttet certifikater som findes i cachen, men som ikke er aktive, slettes fra crl og revoked tabellen.
  • cleanIfGhostSerialNumberActivated
    Hvis ikke rod- eller intermediatecertifikatet er expired. Hvis listen af revoked serialnumber (Se Revokeringer) indeholder værdier, der ikke kan findes i  den aktive liste af serialnumbers, så slettes de fra databasen.