wiki:Documentatie/Ontwikkelaar/Procedures/Zorgdomein/TestTools

Version 24 (modified by henk, 7 years ago) (diff)

--

TOC(heading=Test tools)? TOC(heading=Zorgdomein, sectionindex, compact, depth=4, allactive, Documentatie/Ontwikkelaar/Procedures/Zorgdomein/)? TOC(heading=Procedures, sectionindex, compact, depth=3, allactive, Documentatie/Ontwikkelaar/Procedures/)? TOC(heading=Ontwikkelaar, sectionindex, compact, depth=2, allactive, Documentatie/Ontwikkelaar/)? TOC(heading=Documentatie, sectionindex, compact, depth=1, allactive, Documentatie/)?

Test tools

Deze pagina beschrijft welke mogelijkheden er zijn om de Zorgdomein koppeling te testen.

TIO

TIO is de test site van Zorgdomein op https://tio.zorgdomein.nl/. Hier kunnen verwijzingen worden aangemaakt die worden verstuurd naar OpenACHub.

OpenACHubClient

Met OpenACHubClient kan de security scan van Zorgdomein worden geëmuleerd. De scan kan zowel worden uitgevoerd met een lokale OpenACHub server als met de Azure server op zd.fenac.nl. Om OpenACHubClient te kunnen gebruiken moet OpenACHub zo worden ingericht dat wordt getest op het Fenac root-certificaat en Fenac public key in plaats van het Zorgdomein root-certificaat en de Zorgdomein public key.

Fenac test-certificaat

In de productie verstuurt Zorgdomein verwijzingen met een self signed X509-certificaat. Het root-certificaat (CA) waarmee het Zorgdomein client-certificaat is gesigned is op de Azure server geïnstalleerd in /usr/local/share/ca-certificates. Dit is nodig omdat het certificaat anders niet gevalideerd kan worden. De naam is zorgdomein.crt, dit is een symbolic link naar zorgdomein.pem. Het root-certificaat hebben we van Zorgdomein gekregen. Als we testen met OpenACHubClient dan gebruiken we een door ons zelf uitgegeven self signed X509-certificaat. Ook hiervan is het root-certificaat op de Azure server geïnstalleerd in /usr/local/share/ca-certificates. De naam is zd.fenac-test.nl.root.crt.

Certificaten

Het self signed test-clientcertificaat en het root-certificaat zijn ingecheckt in het OpenACTools project en staan in de map ssl-ca\fenac_root_en_test.

zd.fenac-test.nl.root.keyDe private key van het root-certificaat in PEM-formaat
zd.fenac-test.nl.root.crtHet root-certificaat in PEM-formaat
zd.fenac-test.nl.root.srlHet serial-bestand, bedoeld om bij te houden hoeveel certificaten er met dit root-certificaat zijn gesigned. In combinatie met optie -CAserial
fenac-test.nl.keyDe private key van het test-certificaat in PEM-formaat
fenac-test.nl.csrSigning Request voor het test-certificaat in PEM-formaat
fenac-test.nl.crtHet test-certificaat in PEM-formaat
fenac-test.nl.pfxHet test-certificaat in PFX-formaat
fenac-test.nl.pub.keyDe public key van het test-certificaat in PEM-formaat

Als het nodig is om het root- en test-certificaat opnieuw aan te maken dan zijn dit de stappen:

Key aanmaken voor het root-certificaat (CA):

openssl genrsa -des3 -out zd.fenac-test.nl.root.key 4096

Aanmaken en signen van het root-certificaat (CA):

openssl req -x509 -new -nodes -key zd.fenac-test.nl.root.key -sha256 -days 1024 -out zd.fenac-test.nl.root.crt

Key aanmaken voor het test-certificaat:

openssl genrsa -out fenac-test.nl.key 2048

Signing Request aanmaken voor het test-certificaat:

openssl req -new -key fenac-test.nl.key -out fenac-test.nl.csr

Test-certificaat aanmaken en signen met het root-certificaat en key:

openssl x509 -req -in fenac-test.nl.csr -CA zd.fenac-test.nl.root.crt -CAkey zd.fenac-test.nl.root.key -CAcreateserial -out fenac-test.nl.crt -days 1000 -sha256

Public key exporteren:

openssl x509 -pubkey -noout -in fenac-test.nl.crt  > fenac-test.nl.pub.key

Certificaat converteren naar PFX-formaat voor gebruik in OpenAC:

openssl pkcs12 -export -out fenac-test.nl.pfx -inkey fenac-test.nl.key -in fenac-test.nl.crt

Root certificaat installeren:

Op Windows:

Dubbelklik op zd.fenac-test.nl.root.crt. Er verschijnt een dialoog met o.a. de tekst "Dit CA-basiscertificaat wordt niet vertrouwd". Kies "Certificaat installeren...", vervolgens "Lokale computer" en "Automatisch het certificaatarchief selecteren op basis van het type certificaat".

Op Linux:

sudo cp zd.fenac-test.nl.root.crt /usr/local/share/ca-certificates
sudo update-ca-certificates

Configuratie OpenACHub

In appsettings.json moeten het Fenac testcertificaat en public key worden geconfigureerd.

  • TwoWayClientCertStricCheck.CertificateFile instellen op het volledige pad naar OpenACTools/ssl-ca/fenac_root_en_test/fenac-test.nl.pfx
  • TwoWayClientCertStricCheck.CertificatePassword instellen op het wachtwoord dat is ingecheckt in wachtwoord.txt
  • JWTPublicKeySignatureStrictCheck instellen op het volledige pad naar OpenACTools/ssl-ca/fenac_root_en_test/fenac-test.nl.pub.key

Voorbeeld:

    "TwoWayClientCertStrictCheck": {
      /* "CertificateFile": "D:/projecten/OpenACTools/ssl-ca/zorgdomein.pfx",  */
      "CertificateFile": "D:/projecten/OpenACTools/ssl-ca/fenac_root_en_test/fenac-test.nl.pfx",
      "CertificatePassword": "wachtwoord",
      "Enabled": true
    },

    "JWTPublicKeySignatureStrictCheck": {
      "PemFile": "D:/projecten/OpenACTools/ssl-ca/fenac_root_en_test/fenac-test.nl.pub.key",
      "PemPassword": "",
      "Enabled": true
    }

Configuratie OpenACHubClient

In appsettings.json moet het Fenac testcertificaat en de uit te voeren tests worden geconfigureerd.

  • Zorgdomein.Clientcertificate.File instellen op het volledige pad naar OpenACTools/ssl-ca/fenac_root_en_test
  • Zorgdomein.Clientcertificate.Password instellen op het wachtwoord dat is ingecheckt in wachtwoord.txt
  • Tests die je wilt uitvoeren op true zetten

Voorbeeld:

{
  "Zorgdomein": {
    "Host": "zd.fenac.nl",
    "Port": "2700",
    "Clientcertificate": {
      "File": "D:/projecten/OpenACTools/ssl-ca/fenac_root_en_test/fenac-test.nl.pfx",
      "Password": "wachtwoord"
    },
    "ScanConfig": {
      "ValidCertificateValidJwt": true,
      "NoCertificateValidJwt": true,
      "ValidCertificateNoJwt": true,
      "ValidCertificateNoSignatureJwt": true,
      "ValidCertificateInvalidSignatureJwt": true,
      "ValidCertificateInvalidSigningAlgorithMJwt": true,
      "ValidCertificateExpiredJwt": true
    }

  }
}

Security scan uitvoeren

  • Zorg dat in appsettings.json van OpenACHubClient de opties Host en Port goed staan ingesteld, afhankelijk van of je OpenACHub lokaal of op de Azure server wilt testen.
  • Als je lokaal wilt testen, start OpenACHub
  • Start OpenACHubClient

Als alle tests met goed resultaat zijn afgerond dan is dit het resultaat:

Als er fouten zijn dan staan er één of meerdere errors in het rood:

Bij elke fout staat de verwachte en de werkelijke HTTP-statuscode.

Attachments (2)

Download all attachments as: .zip