NICE FHIR Beta - Frequent Asked Questions

Mis je een vraag of heb je feedback laat het ons weten.

Hoe stuur ik een FHIR bundle via een beveiligde verbinding met client certificaten?

Per ziekenhuis moet client certificaat eerst geregistreerd worden. Dit kan men doen door als ziekenhuis in NICE Online in te loggen. Als de NICE Online account de rechten certificate-registration heeft, dan ziet men een link op de startpagina van NICE Online. Via de link https://stichting-nice.nl/certificate-registration/ kan men een certificaat registeren. De juiste rechten aanvragen kan via info@. De geregistreerde certificaat hoort niet verlopen te zijn en gesigned zijn door een door een CA. Een self-signed certificaat wordt niet geaccepteerd voor mTLS (mutual Transport Layer Security). Bij het registreren van een certificaat wordt een account gemaakt voor de applicatie, met de rechten FHIR-Applicatie.

Bij het opzetten van een een mTLS verbinding wordt de certificaat standaard gecontroleerd op vervaldatum en een valide CA. Dit is alleen mogelijk als er genoeg intermediare certificaten worden opgestuurd tot een door ons bekende client CA.

Bij het versturen van een bundle naar onze FHIR applicatie vind een extra controle plaats of de public key van de verstuurde certificaat matched met de public key van de geregistreerde applicatie.

Hoe kan ik zien welke client CA bekend is bij de NICE?

In linux kan de volgende commando worden gebruikt als openssl is geinstalleerd.

openssl s_client -crlf -connect fhir.stichting-nice.nl:443 -servername fhir.stichting-nice.nl

Onder de regel Acceptable client certificate CA names zijn de DN namen van CA die geaccepteerd worden.

Hoe kan is zien welke intermediare certificaten in mijn p12 of pfx bestand zijn?

Een p12 of pfx bestand kan uitlezen worden via:

openssl pkcs12 -nodes -in client.p12 -out client.pem

In de client.pem bestand is de eerste bestand de client certificaat, vervolgd door de CA certificaten en eindigend met de private key

Hoe maak ik een p12 bestand met de juiste intermediare certificaten?

Een certificaat is vaak een base64 tekst bestand. Hierdoor kan een intermediare ca chain maken door, eerst de certificaten op volgorde van signed aan elkaar te plakken. De client certificaat is geen onderdeel van deze chain.

cat intermediare-ca.crt root-ca.crt > client-chain.crt

Na het maken van zo'n chain deze toegevoegd worden met de client signed certificaat, de private key tot een p12 bestand

openssl pkcs12 -export -name "My Client Certificate" -out client.p12 -inkey client.key -in client.crt -certfile client-chain.crt -passin pass:password

Mijn client certificaat is geregistreerd maar wordt niet herkend?

Problemen waardoor client certificaten niet wordt herkent:

  1. Client certificaat is self-signed en dus niet gesigned door een door ons bekende CA. Hoewel het mogelijk is om een self-signed certificaat te registreren, kan deze niet gebruikt worden voor mTLS communicatie.
  2. Client certificaat is gesigned door een intermediate CA dat door ons niet bekend is. Bij het opzetten van mTLS verbinding, moet niet alleen de client certificaat, maar alle certificaten van intermediare CA die bij ons niet bekend zijn worden opgestuurd.
  3. Client certificaat verval datum is verlopen en moet opnieuw geregisterd worden. Registreerd de certificaat weer via https://stichting-nice.nl/certificate-registration/
  4. De certificaat is niet gemaakt voor Web Client Authentication Bekijk de certificaat bedoeld is voor TLS Web Client Authentication. Dit kan je vinden met openssl onder X509v3 Extended Key Usage. openssl x509 -in client.crt -noout -text. In Windows na dubbel klik hoort bij de Details Extended Key Usage, Client Authentication te staan.

Hoe kan ik mijn client certificaat testen?

Als men in het bezit is van een client certificaat met diens private key, zoals in een pfx of p12 bestand, dan deze worden geimporteerd in een browser als client certificaat. Bij het browser met deze browser naar https://beta.stichting-nice.nl/cert/ zal worden gevraagd of deze certificaat kan worden opgestuurd. De private sleutel wordt niet opgestuurd bij een mTLS verbinding. Bij een succesvolle mTLS verbinding zal de gebruikersnaam en de Distinguished Name op de pagina worden getoond.

Testbestand

Voorbeeld van een het versturen van een bestand in curl in Windows Powershell met een ziekenhuisnummer 3, icno 1 en admno 123. De privatekey, certificaat en certifate CA chain opgeslagen in bestand client.pfx met wachtwoord password.

.\curl.exe --cert ./client.pfx:password --cert-type p12 -X PUT -H "Content-Type: application/fhir+xml" --data-binary '@test.xml' https://beta.stichting-nice.nl/fhir/R4/Bundle?identifier=https://stichting-nice/fhir/identifier/3/1/admission%7C123

Voorbeelden: Voorbeelden

Inzien van opgestuurde data

Met NICE Online account met de rechten de rechten nice-fhir-query is het mogelijk om de succesvol verwerkte data terug te zien in json formaat. De gebruiker kan alleen de aan de NICE Online account gekoppelde ziekenhuis.

https://beta.stichting-nice.nl/nice-fhir-query/.