# Planningscertificaat

> Hoe je het OV-clientcertificaat aanvraagt, registreert en vernieuwt dat de planning-API van Fluvius vraagt voor de day-aheadaansturing van Fall-Back Flex: vereisten, waar je er een koopt, de bestelstappen en de vernieuwingscyclus

Source: https://voltmasters.io/nl/docs/dso-rtu/grid-operators/fluvius/fall-back-flex/planning-certificate/

Zones met verplichte day-aheadaansturing publiceren het Fall-Back Flex-plan via de [planning-API van Fluvius](https://voltmasters.io/nl/docs/dso-rtu/grid-operators/fluvius/fall-back-flex/#day-aheadplanning). Die API kent geen API-sleutels, geen accounts en geen gedeelde geheimen: de enige manier binnen is een **clientcertificaat** dat in een mutual TLS-handshake (mTLS) aangeboden wordt. Zonder geldig certificaat kan de controller het plan niet ophalen en niet bevestigen, en dat rekent Fluvius aan als een niet-geleverde dienst.

Het certificaat wordt gekocht door de **netgebruiker** (de klant, de DNG in de Fluvius-documenten), niet door Voltmasters. Het bevestigt het juridische bestaan van je onderneming, dus alleen je eigen onderneming kan de validatie bij de certificaatautoriteit afronden. Zodra het uitgereikt is, koppelt Fluvius het certificaat aan de serverkant aan **één assetkoppelpunt-id** en beperkt alles wat de API teruggeeft tot die aansluiting. Het EMS selecteert dus zelf niets: wat de API op dit certificaat antwoordt, hoort bij deze aansluiting.

> **Let op**
>
> Start de bestelling **minstens drie weken** voordat de day-aheadaansturing moet lopen. De organisatievalidatie bij een certificaatautoriteit duurt enkele werkdagen, en langer wanneer de CA je onderneming niet in een publiek register vindt of je niet kan bereiken op een gepubliceerd telefoonnummer.

### Wat Fluvius vraagt

| Vereiste | Waarde |
| --- | --- |
| **Type** | OV-SSL-certificaat (Organisation Validation) van een erkende commerciële CA |
| **Zelfondertekend** | Niet toegelaten, de aanvraag wordt geweigerd |
| **Sleuteltype** | RSA, KeySpec = Signature |
| **Sleutellengte** | Minstens 2048 bits |
| **Geldigheid** | Maximaal één jaar |
| **Gebruik** | X.509-clientcertificaat in een mutual TLS-opstelling, één certificaat per uitvoerende client |
| **Koppeling** | Aan de serverkant gekoppeld aan één `assetPointId`, die met elk bericht dat je verstuurt moet overeenkomen |
| **Kostprijs** | Ruwweg 60 tot 300 EUR per jaar, afhankelijk van de CA |
| **Melding van het verval** | Kondig een vervangend certificaat bij Fluvius aan ten vroegste 90 en ten laatste 15 dagen voor de vervaldatum |

Fluvius laat de keuze van certificaatautoriteit aan jou, zolang het certificaat aan deze vereisten voldoet.

> **Let op**
>
> Er is geen test- of acceptatieomgeving voor de planning-API buiten een concreet aansluitingsdossier: Fluvius opent er geen voor productontwikkeling. De eerste handshake gebeurt dus op de productie-API, en daarom horen de registratie bij Fluvius en de controle hieronder bij de indienstneming en zijn ze niets om uit te stellen.

### Voor je bestelt

Een OV-certificaat wordt uitgereikt aan een onderneming, niet aan een persoon of een toestel. Leg het volgende klaar:

-   de **juridische naam, het adres en het ondernemingsnummer** (in België het KBO-nummer) precies zoals ze in het officiële register staan;
-   een **telefoonnummer** waarop de CA je onderneming kan bereiken, vermeld in een publieke bron die de CA aanvaardt (het ondernemingsregister, een officiële gids of je eigen domein);
-   een **domeinnaam die je beheert**, met toegang tot de DNS-records of tot een e-mailadres op dat domein: de CA valideert het domeinbeheer als onderdeel van de bestelling;
-   een **technisch contact** dat de uitgereikte bestanden kan ontvangen en de private key veilig bewaart;
-   het **assetkoppelpunt-id** dat Fluvius aan de aansluiting toegekend heeft, uit het biedformulier of de zonefiche.

> **Opmerking**
>
> Het certificaat is een ondernemingscertificaat, geen certificaat per project. Heb je meerdere Fall-Back Flex-aansluitingen, vraag Fluvius dan of één certificaat de betrokken assetkoppelpunten kan dekken: het certificaat geldt voor alle assets die via Netflex aangestuurd worden, maar de koppeling aan een assetkoppelpunt-id gebeurt per uitvoerende client. Bevestig de bedoelde opstelling met [FRPflex@fluvius.be](mailto:FRPflex@fluvius.be) voor je bestelt.

### Waar je er een koopt

Elke erkende commerciële CA die OV-certificaten uitreikt, komt in aanmerking. De meest gebruikte, met de pagina waar je het OV-product bestelt:

| Certificaatautoriteit | OV-product |
| --- | --- |
| GlobalSign | [OrganizationSSL](https://shop.globalsign.com/en/ssl/organization-ssl), Belgisch kantoor op [globalsign.be](https://www.globalsign.be/) |
| DigiCert | [Secure Site OV](https://www.digicert.com/tls-ssl/secure-site-ssl-certificates) |
| Sectigo | [OV SSL certificates](https://www.sectigo.com/ssl-certificates-tls/ov-organization-validation) |

Kopen via een reseller mag ook en is vaak goedkoper. Belgische resellers die de OV-producten van de CA's hierboven aanbieden, zijn onder meer [Kinamo](https://www.kinamo.be/nl/ssl-certificaten/validatietype/organisation-validation) en [Combell](https://www.combell.com/nl/ssl-certificaten). Wat telt is het certificaat zelf, niet wie het verkocht heeft.

> **Gevaar**
>
> Gratis certificaten van Let's Encrypt, ZeroSSL en vergelijkbare diensten zijn **domeingevalideerd (DV)**, niet organisatiegevalideerd. Ze voldoen niet aan de Fluvius-vereiste, hoe technisch geldig ze ook zijn. Zelfondertekende certificaten en certificaten van je eigen interne CA worden eveneens geweigerd.

### Bestellen, stap voor stap

1. **Maak een private key en een CSR aan**
   
   Maak het sleutelpaar zelf aan en houd de private key bij: een CA heeft die nooit nodig, en een sleutel die rondgemaild is, kan je niet meer vertrouwen. Op elke machine met OpenSSL:
   
   ```bash
   openssl req -new -newkey rsa:2048 -nodes \
     -keyout fluvius-planning.key \
     -out fluvius-planning.csr \
     -subj "/C=BE/O=Jouw Onderneming NV/CN=ems.jouwonderneming.be"
   ```
   
   Gebruik een domein dat je beheert als `CN`, en vul bij `O` de juridische ondernemingsnaam in zoals hij in het register staat. Met `-nodes` krijgt de private key geen passphrase, en dat is wat het platform bij het opladen verwacht.
2. **Bestel het OV-certificaat**
   
   Bestel het OV-product bij de CA of reseller van je keuze en dien de CSR uit de vorige stap in. Vraag expliciet naar **Client Authentication** in de extended key usage: de meeste OV-TLS-producten dragen zowel server- als clientauthenticatie, maar een certificaat dat alleen voor servers geldt, kan je niet voor mTLS gebruiken. Vermeld dat het certificaat als clientcertificaat in een machine-naar-machineopstelling gebruikt wordt.
3. **Rond de organisatievalidatie af**
   
   De CA controleert het juridische en fysieke bestaan van je onderneming tegen het officiële register en een publieke gids, en belt het gepubliceerde telefoonnummer op. Antwoord snel op hun vragen: deze stap bepaalt de doorlooptijd. De CA kan een recent uittreksel uit het ondernemingsregister vragen.
4. **Haal de uitgereikte bestanden op**
   
   Je krijgt het **certificaat** en de **CA-keten** (intermediate plus root). Samen met de private key uit stap 1 is dat alles wat je nodig hebt. Het platform verwacht PEM (`.pem`, `.crt`, `.cer` voor certificaten, `.pem` of `.key` voor de private key). Zie [bestandsformaten](https://voltmasters.io/nl/docs/dso-rtu/grid-operators/fluvius/fall-back-flex/planning-certificate/#bestandsformaten-en-omzettingen) als je CA een PKCS#12- of DER-bestand geleverd heeft.
5. **Registreer het certificaat bij Fluvius**
   
   Stuur het **publieke certificaat** (nooit de private key) naar [FRPflex@fluvius.be](mailto:FRPflex@fluvius.be), samen met het assetkoppelpunt-id waaraan het gekoppeld moet worden. Fluvius koppelt het certificaat aan dat assetkoppelpunt; zolang die koppeling niet bestaat, antwoordt de API `UNAUTHORIZED_CERTIFICATE` of `FORBIDDEN`, ook met een perfect geldig certificaat.
6. **Laad het op in het platform**
   
   Onder **Configuratie → Net & markt → DSO RTU-instellingen**, in de sectie Fall-Back Flex, laad je het **clientcertificaat**, de **private key** en eventueel de **CA-keten** op, en vul je het assetkoppelpunt-id in. Het platform kijkt na of het certificaat leesbaar is, of de sleutel erbij hoort en of het niet vervallen is, en toont dan de thumbprint en de vervaldatum. De controller pikt de gegevens binnen de minuut op.
7. **Controleer**
   
   Op de [pagina Fall-Back Flex](https://voltmasters.io/nl/docs/dso-rtu/grid-operators/fluvius/fall-back-flex/#opvolgen) moet het day-aheadplan verschijnen na de volgende publicatie van Fluvius (rond 12:00 voor de volgende dag). Kijk na of er geen incident *planning-API van Fluvius niet bereikbaar* openstaat. Vraag bij twijfel aan de Voltmasters-ondersteuning om de handshake op de controller na te kijken.

### Bestandsformaten en omzettingen

Het platform bewaart het certificaat en de sleutel als PEM. PEM is tekst en begint met `-----BEGIN CERTIFICATE-----` of `-----BEGIN PRIVATE KEY-----`. Heeft je CA iets anders geleverd:

| Je kreeg | Zet om met |
| --- | --- |
| PKCS#12-bundel (`.pfx`, `.p12`) | `openssl pkcs12 -in bundle.pfx -clcerts -nokeys -out certificate.pem` en `openssl pkcs12 -in bundle.pfx -nocerts -nodes -out private.key` |
| DER-certificaat (`.der`, `.cer` binair) | `openssl x509 -inform der -in certificate.der -out certificate.pem` |
| Versleutelde private key | `openssl rsa -in encrypted.key -out private.key` |

De private key moet **zonder passphrase** opgeladen worden: het platform vraagt er geen, en een versleutelde sleutel wordt als onleesbaar geweigerd. Houd de oorspronkelijke versleutelde kopie in je eigen wachtwoordbeheerder bij.

> **Opmerking**
>
> Het certificaat en de sleutel worden op het platform bewaard en over het versleutelde desired-statekanaal naar de controller gestuurd. Achteraf tonen we in de interface alleen nog de thumbprint en de vervaldatum; de bestanden zelf kan je niet opnieuw downloaden. Houd je eigen kopie op een veilige plaats bij.

### Vernieuwen

Een certificaat is **maximaal één jaar** geldig, dus vernieuwen hoort bij het uitbaten van een Fall-Back Flex-aansluiting en is geen uitzondering.

| Wanneer | Wat er gebeurt |
| --- | --- |
| 90 dagen voor het verval | Fluvius aanvaardt vanaf dit moment de aankondiging van een vervangend certificaat. |
| 60 dagen voor het verval | Het platform stuurt de eerste herinneringsmail naar de projectleden die meldingen krijgen. |
| 30 dagen voor het verval | Herinneringsmail, en het EMS meldt het incident *planningscertificaat verloopt binnenkort*. |
| 15 dagen voor het verval | Herinneringsmail. Dit is het laatste moment om het vervangende certificaat bij Fluvius aan te kondigen; een latere aankondiging riskeert een gat in de day-aheadaansturing. |
| 7 dagen en 1 dag ervoor | Laatste herinneringsmails. |
| Na het verval | De API weigert de handshake, het plan wordt niet meer opgehaald en het incident *planningscertificaat vervallen* komt naar boven. De controller blijft het laatst bevestigde plan en het live Netflex-setpoint toepassen, dus een activatie wordt nog uitgevoerd. |

Vernieuwen zonder gat:

1.  Bestel het nieuwe certificaat 6 tot 8 weken voor de vervaldatum, met een nieuw sleutelpaar (vernieuwen is een nieuwe bestelling bij de CA, geen verlenging).
2.  Stuur het nieuwe publieke certificaat naar [FRPflex@fluvius.be](mailto:FRPflex@fluvius.be), ten vroegste 90 en ten laatste 15 dagen voor de vervaldatum, en vermeld het assetkoppelpunt-id en de vervaldatum van het huidige certificaat.
3.  Zodra Fluvius de nieuwe koppeling bevestigt, laad je het nieuwe certificaat en de nieuwe sleutel in hetzelfde formulier op. Het opladen vervangt de bewaarde bestanden en herstart de herinneringscyclus op de nieuwe vervaldatum; het incident over het verval gaat toe zodra de controller op het nieuwe certificaat loopt.

### Problemen oplossen

| Symptoom | Oorzaak en oplossing |
| --- | --- |
| `UNAUTHORIZED_CERTIFICATE` | Het certificaat is niet gekend bij Fluvius, of de koppeling aan het assetkoppelpunt-id is nog niet actief. Bevestig de registratie met Fluvius. |
| `FORBIDDEN` | Het certificaat is geldig maar niet aan deze aansluiting gekoppeld, of de koppeling is voor een ander assetkoppelpunt gemaakt. Vraag Fluvius aan welk assetkoppelpunt het certificaat gekoppeld is en vergelijk dat met het biedformulier. |
| Bij het opladen zegt het platform dat de sleutel niet bij het certificaat hoort | Certificaat en sleutel komen uit verschillende bestellingen. Gebruik de sleutel die je voor de CSR van dit certificaat aangemaakt hebt. |
| Bij het opladen zegt het platform dat het certificaat niet leesbaar is | Het bestand is DER of PKCS#12, geen PEM. Zet het eerst om, zie [bestandsformaten](https://voltmasters.io/nl/docs/dso-rtu/grid-operators/fluvius/fall-back-flex/planning-certificate/#bestandsformaten-en-omzettingen). |
| Bij het opladen zegt het platform dat de private key niet leesbaar is | De sleutel is met een passphrase beschermd. Haal de passphrase eraf, zie [bestandsformaten](https://voltmasters.io/nl/docs/dso-rtu/grid-operators/fluvius/fall-back-flex/planning-certificate/#bestandsformaten-en-omzettingen). |
| Het plan blijft leeg terwijl het certificaat aanvaard is | Fluvius publiceert het plan voor de volgende dag rond 12:00. Voor de eerste publicatie na de registratie is er niets om op te halen. |

### Veelgestelde vragen

**Kan Voltmasters het certificaat voor ons bestellen?**

Nee. De organisatievalidatie bevestigt het juridische bestaan van de onderneming die de netaansluiting heeft, dus de bestelling moet door die onderneming geplaatst worden. Voltmasters helpt met de CSR, het omzetten van de bestanden en de controle achteraf.

**Kunnen we het certificaat van onze website gebruiken?**

Technisch kan dat als het een OV-certificaat is dat clientauthenticatie bevat en je over de private key beschikt, maar het is een slecht idee: een certificaat dat ook de publieke website bedient, komt op webservers terecht en vervalt op het ritme van die website. Bestel een apart certificaat voor het EMS.

**Kunnen we de planning-API testen voor we live gaan?**

Niet op een testomgeving: Fluvius geeft alleen toegang binnen een concreet aansluitingsdossier en heeft er geen voor productontwikkeling. Bestel en registreer het certificaat vroeg, en gebruik de eerste publicatie van Fluvius na de registratie (rond 12:00 voor de volgende dag) als controle.

**Hebben we dit certificaat nodig zonder day-aheadaansturing?**

Nee. In zones met zuivere live aansturing loopt Fall-Back Flex volledig over de Netflex RTU, en die heeft geen certificaat nodig. Het planningscertificaat is alleen verplicht wanneer de zonefiche zegt dat day-aheadaansturing verplicht is.

**Wat gebeurt er bij een activatie wanneer het certificaat vervallen is?**

De live aansturing blijft werken: de Netflex RTU-verbinding staat los van de planning-API. Wat wegvalt, is de day-aheadvoorbereiding (de batterij opladen voor een beperking) en de bevestiging van het plan aan Fluvius, en dat laatste is een contractuele verplichting. Los het zo snel mogelijk op.
