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.
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