Loading…
Tilbage

Profilbillede

Hvor finder jeg et nyere ssl-trust.jks certfikat.

Claus Pedersen

Jeg forsøger at køre OIOIDWS. Java (SOAP) reference implementationen i klienten som henter STS token (i system-user-scenario) men får følgende fejl:

"org.apache.cxf.binding.soap.SoapFault: Problem writing SAAJ model to stream: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"

Det har formentlig noget at gøre med det certifikat der hedder ssl-trust.jks hvor certifkatet med alias 'nemlogin' er udløbet (CN = *.test-nemlogin.dk ...). Hvor finder jeg det?

Eller er der noget jeg overser. I koden står der følgende i WSClient.java: (Og som bliver kaldt et hack)

// This is a hack to support the self-signed SSL certificate used on the WSP
// in a real production setting, the service would be protected by a trusted SSL certificate
// and setting a custom truststore like this would not be needed

System.setProperty("javax.net.ssl.trustStore", "src/main/resources/ssl-trust.jks");
System.setProperty("javax.net.ssl.trustStorePassword", "Test1234");

Er der en måde at omgå det, eller skal jeg have anvende det certifikat. REST impl. virker fint og har ikke det certifkat. Og det skal jo ikke anvendes i produktion.

ændret af Claus Pedersen (11.06.2020)

Hej Claus

Det du oplever er at kaldet fra WSC til NemLog-in STS fejler, da "nemlogin" TLS-certifikat for NemLog-in STS er udløbet i truststore for SOAP WSC'en (ssl-trust.jks). Sikkerhedsmæssigt er det en god idé med sådan et pinned TLS-certifikat: https://owasp.org/www-community/controls/Certificate_and_Public_Key_Pinning Det er mærkeligt at REST referenceimplementations WSC ikke har dette certifikat i sin truststore, da kaldet til NemLog-in STS er det samme (SOAP-baseret) for både SOAP og REST-referenceimplementationen.

NemLog-in STS giver certifikatet når man forbinder dertil, så du kan hente det vha. openSSL eller ved bare at åbne URL til NemLog-in STS i din browser (nonprod: https://securetokenservice.test-nemlog-in.dk/SecurityTokenService.svc / prod: https://securetokenservice.nemlog-in.dk/SecurityTokenService.svc - de er ikke ens!) og trykke på hængelås ikonet ved adresselinjen og eksportere certfikatet. Certifikat pinning giver bedst sikkerhed, hvis man benytter det specifikke certfikat (nonprod: *.test-nemlog-in.dk / prod: NemLog-in.dk) og ikke bare rodcertifikatet i sin truststore.

Efter jeg har gjort dette samt opdateret STS FOCES public key (https://test-nemlog-in.dk/Testportal/certifikater/IntegrationTestSigning.zip) i trust.jks for både WSC og WSP, så virker SOAP-referenceimplementationen for mig. Jeg håber at DIGST snart laver en opdateret udgave, så vi ikke alle skal slås med forældede certifikater.

Hej Anders.

Mange tak for svar, nu virker det :-)

Ja, håber også DIGST opdaterer deres implementationer. 

Mvh. Claus