Certificaten PDOK Locatieserver

We roepen vanuit onze java applicatie de PDOK Locatieserver aan waarbij we gebruik maken van een certificaat. Het lijkt er echter op dat vanuit de locatieserver meerdere certificaten worden gehanteerd omdat het niet telkens dezelfde is en tot een fout leidt (PKIX path building failed and unable to find valid certification path to requested target).
Kunnen jullie aangeven welke er worden gebruikt zodat we die kunnen opnemen in onze truststore? Tot nu toe hebben we 3 verschillende certificaten gezien en we willen graag weten of het lijstje compleet is.

Beste Eric-Peters,

Klopt het dat jullie certificate pinning willen toepassen? Aangezien je (enkel) de exacte chain van certificaten wilt vertrouwen. Dat kan maar is wel een eigen verantwoordelijkheid. Certificaten zullen met enige regelmaat verlopen en worden vervangen dat zal in zo’n geval een wijziging in jullie truststore als gevolg hebben.

Wat in veel gevallen handiger is, is om enkel de CA (certificate authority) te vertrouwen. Alle onderliggende certificaten zijn dan ook automatisch vertrouwd en dan is het niet nodig om bij elke certificaat wissel de truststore bij te werken. De (huidige) CA is DigiCert. Het DigiCert root certificaat in de truststore plaatsen zou voldoende moeten zijn. Overigens verwacht ik dat DigiCert standaard al door Java wordt vertrouwd (in de standaard Java ‘cacerts’ truststore).

Om je vraag over het aantal certificaten te beantwoorden. Als je het volgende command uitvoert zie je de volledige chain: openssl s_client -host api.pdok.nl -port 443 -prexit -showcerts inclusief alle certificaten. Dat zijn er inderdaad 3:

depth=2 C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root G2
verify return:1
depth=1 C=IE, O=DigiCert Ireland Limited, CN=DigiCert G2 TLS EU RSA4096 SHA384 2022 CA1
verify return:1
depth=0 C=NL, ST=Gelderland, L=Apeldoorn, O=Dienst voor het Kadaster en de openbare registers, CN=*.pdok.nl
verify return:1

Waarbij het www.digicert.com certificaat de root is.

1 like