Table of Contents |
---|
...
- Klient (SKLTPs) certifikatets CA (root) saknas i tjänsteproducentens truststore (Received fatal alert: handshake_failure)
- Det saknas ett CA (root) certifikat i klientens (SKLTPs) truststore alternativt en felaktig konfiguration av truststore och den angivna filen finns inte (sun.security.validator.ValidatorException: No trusted certificate found)
- Servers namn som angivits i tjänsteproducentens certifikat (CN) stämmer ej överens med namnet eller IP adressen som angivits i URL:en (java.security.cert.CertificateException: No name matching ...)
- Tjänsteproducenten använder sig av GCM (Galois/Counter Mode) ciphers och dessa stöds ej av standard Java security (sun.security.validator.ValidatorException: Certificate chaining error)
- Fel certifikat installerat hos tjänsteproducenten. Troligen har signeringscertifikatet felaktigt installerats på servern instället för autentiseringscertifikatet från SITHS. (KeyUsage does not allow key encipherment)
Använd openssl för att kontrollera tjänsteproducentens certifikat:
$ openssl s_client [ -cert <client-cert> -key <private-key> ] -connect <producer-host-name>:<port> -showcerts
...
Q: Varför får man "javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair" för utgående trafik från tjänsteplattform mot tjänsteproducent
A: Java 7 och tidigare versioner stödjer ej Diffie-Hellman (DH) modulus nyckellängd överstigande 1024 bits. Använder tjänsteproducenten certifikat med längre nyckellängd och i synnerhet Apache 2.4.7 eller senare så är detta fel typiskt. Åtgärdas genom att lägga till specifika DH parametrar till tjänsteproducentens certifikat. Se en bit ned på denna sida från Apache (Why do I get handshake failures with Java-based clients when using a certificate with more than 1024 bits?)
...
~ $ openssl s_client -tls1 -connect prod.esb.rtp.sll.se:443
> CONNECTED(00000003) > depth=2 /C=SE/O=Inera AB/CN=SITHS Root CA v1 PP …Svaret kan kommainnehålla några felfelmeddelanden här beroende på attom SITHS CA-cert inte finns med i lokalt truststore. Det viktiga är att se "CONNECTED" ovansamt och egenskaper för RTP-certifikatet visas i svaret.
A: Använd telnet för att testa konnektivitet:
C:\Users\myAccount\>telnet prod.esb.rtp.sll.se 443
Anslutningen skall lyckas och inte visa felmeddelande "Could not open connection to the host, on port 443: Connect failed"