Help
Op deze pagina hebben we wat extra mogelijkheden beschreven om informatie van de server te verkrijgen.
Hoe stuur ik een FHIR bundle via een beveiligde verbinding met client certificaten?
Per ziekenhuis moet het client certificaat eerst geregistreerd worden. Dit kan men doen door als ziekenhuis in NICE Online in te loggen. Als het NICE Online account de rechten certificate-registration heeft, dan ziet men een link op de startpagina van NICE Online. Via deze link kan men een certificaat registeren.
De juiste rechten aanvragen kan via info@stichting-nice.nl. Het geregistreerde certificaat hoort niet verlopen te zijn en getekend te zijn door een Certificate Authority (CA).
Een self-signed certificaat wordt niet geaccepteerd voor mutual Transport Layer Security (mTLS). 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 het 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 vindt een extra controle plaats of de public key van de verstuurde certificaat matcht 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 geïnstalleerd:
openssl s_client -crlf -connect fhir.stichting-nice.nl:443 -servername fhir.stichting-nice.nl
Onder de regel Acceptable Client Certificate names zijn de Domain Name (DN) namen van CA die geaccepteerd worden.
Hoe kan ik zien welke intermediare certificaten in mijn p12 of pfx bestand zijn?
Een p12 of pfx bestand kan worden uitgelezen via:
openssl pkcs12 -nodes -in client.p12 -out client.pem
In het 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 worden gemaakt door eerst de certificaten op volgorde van tekening aan elkaar te plakken. Het 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 kan deze samen worden gevoegd met de client signed certificaat en 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:
- 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.
- Client certificaat is gesigned door een intermediate CA dat door ons niet bekend is. Bij het opzetten van mTLS verbinding, moet niet alleen het client certificaat, maar alle certificaten van intermediare CA die bij ons niet bekend zijn worden opgestuurd.
- Client certificaat verval datum is verlopen en moet opnieuw geregisterd worden. Registreer het certificaat weer via deze link
- Het certificaat is niet gemaakt voor Web Client Authentication. Bekijk of het 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 dient deze te worden geïmporteerd in een browser als client certificaat. Ga met deze browser naar deze link. Er zal worden gevraagd of het certificaat kan worden opgestuurd. De private key 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 private key, certificaat en certificate CA chain opgeslagen in een 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/R4/Bundle?identifier=https://stichting-nice/fhir/identifier/3/1/admission%7C123
Download: test.xml
Inzien van opgestuurde data
Met een NICE Online account met de rechten nice-fhir-query is het mogelijk om de succesvol verwerkte data terug te zien in JSON formaat. De gebruiker kan dit alleen met het NICE Online account wat is gekoppeld aan het ziekenhuis.