CRL Downloader Dokumentation

Microservice zur Lösung des CRL-Downloads für FSS.

Features

Der CRL-Downloader kann in regelmäßigen Abständen (z.B. täglich) die Sperrlisten der im FSS hinterlegten Zertifikate abrufen. Diese werden dem FSS zur Verfügung gestellt, sodass der FSS auf dessen Basis den Sperrlistenstatus der Zertifikate ermitteln kann. Idealerweise wird dabei festgestellt, dass die Zertifikate nicht gesperrt sind.

Der Sperrlisten-Download kann auch über die B2B gelöst werden. Der CRL-Downloader ist damit für Sie vorallem dann interessant, wenn Sie die B2B nicht einsetzen, oder wenn Sie Ihr Crypto-System von der B2B entkoppeln möchten.

Hardware Anforderungen

Eine Service-Instanz erfordert mindestens 512 MB RAM.

Wir empfehlen 0,1 CPU-Kerne je Instanz.

Dependencies

Die folgenden Dienste müssen ausgeführt werden, damit der CRL-Downloader ordnungsgemäß funktioniert. Der CRL-Downloader ruft das FSS-Backend auf REST-API-Endpunkte, die wiederum die FSS-Datenbank abfragen.

  1. FSS-Database
  2. FSS-Backend

Run the Application

Um die Anwendung zu starten, können Sie Folgendes verwenden:

mvn spring-boot:run

Standardmäßig kann auf die Anwendung lokal zugegriffen werden über: http://localhost:8090

Um den Server-Port zu ändern, konfigurieren Sie den Server-Port in application.properties.

server.port=8090

Der API-Kontext ist wie folgt: http://localhost:8090/aep-crl-downloader

Swagger

Für die API-Dokumentation wird Swagger verwendet.

Die URL für Swagger lautet: http://localhost:8090/aep-crl-downloader/swagger-ui.html

Actuator

Diese Root-URL für den Aktuator lautet: http://localhost:8090/aep-crl-downloader/actuator

FSS Connection

Um eine Verbindung zu FSS herzustellen, müssen wir die URL in der folgenden Eigenschaft konfigurieren:

fss.server.api.url

Keycloak

Um Keycloak zu aktivieren. Konfigurieren Sie die folgenden Eigenschaftendateien.

1) application.properties:

spring.profiles.active=keycloak-enriched

Standardmäßig ist das aktive Profil eingestellt auf: no-keycloak-enriched (keycloak deaktiviert).

2) application-keycloak-enriched.properties:

keycloak.enabled=true
keycloak.auth-server-url=http://host.docker.internal:9000/auth
keycloak.realm=as4
keycloak.resource=crl-downloader-service
keycloak.bearer-only=true

Weitere Details zur Keycloak Konfiguration finden Sie hier.

Update Revocation status

Um den Sperrstatus von Zertifikaten zu aktualisieren, kann der folgende API endpoint ausgeführt werden:

/aep-crl-downloader/revocation/update

Dies ist eine GET request. Es gibt keine Anforderungsparameter oder -körper.

Falls der Status regelmäßig (z.B. täglich) erneuert werden soll, kann die API per zeitgesteuertem Script aufgerufen werden, z.B. ein Shellscript das über Cron ausgeführt wird. Ein Beispielscript ist hier (intern) verfügbar.

CRL Download Config

Um auf die CRL-Links zuzugreifen und die CRLs herunterzuladen. In der application.yml können zwei Einstellungen konfiguriert werden.

1) Ausgeschlossene Liste von URI (eingestellt in revocation.excludedUri) 2) Proxy-Einstellungen (eingestellt in revocation.proxy). Setzen Sie proxy.enable auf true und vervollständigen Sie die restlichen Details, wenn ein Proxy erforderlich ist.

Die Konfiguration ist wie folgt:

revocation:
  excludedUri:
    - http://example1/rl/SM-Test-BSI-Sub.CA_SN7.crl
    - http://example2/rl/SM-Test-BSI-Sub.CA_SN7.crl
  proxy:
    enable: true 
    url: https://aep-proxy.de
    port: 443
    user: admin
    password: secret
    ntlm: false
    excludeList:

Falls Download-Links ignoriert werden sollen, sind diese in der Property excludedUri aufzulisten.

Falls ein Proxy aktiviert ist, aber trotzdem bestimmte Hosts nichts über den Proxy geroutet werden sollen, sind diese in der excludeList Semikolon-separiert zu hinterlegen.

Falls NTLM für die Proxy Authentifizierung eingesetzt werden soll, ist die Property ntlm: true zu setzen.

Der CRL-Service kommuniziert mit dem FSS. Der zugehörige Timeout kann wie folgt konfiguriert werden:

#read timeout in ms
readTimeout=120000

Der Timeout muss hinreichend groß gewählt werden (z.B. 120 Sekunden), damit die Sperrlisten aller Zertifikate (mehrere Tausend) aktualisiert werden können.

Allgemeine Konfiguration

Weitere allgemeine Konfigurationsmöglichkeiten sind hier beschrieben.

Anhang: Gesamtkonfiguration

Folgende Konfiguration reicht in einem Standard-System aus: ``application.properties`.

## FSS
fss.server.api.url=http://fss:2222/fss/api/v1
#read timeout in ms
readTimeout=30000

View Me   Edit Me