Closed jlrcontegix closed 10 months ago
What version of JDK and Keycloak are you running on this server? Is is using the Keycloak docker container or a manual install?
Keycloak 22.0.5 with OpenJDK 17, Keycloak was installed manually.
openjdk 17.0.9 2023-10-17 LTS
OpenJDK Runtime Environment (Red_Hat-17.0.9.0.9-1) (build 17.0.9+9-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-17.0.9.0.9-1) (build 17.0.9+9-LTS, mixed mode, sharing)
This is an error that I'm not sure about at first glance. It seems to be coming from the HTTP client inside the Duo SDK which this extension is using. certificate_unknown(46) leads me to believe that it cannot verify the SSL certificate of the Duo server, but I'm not sure what would cause a failure for just Duo, as you said other TLS requests are working when Duo starts to fail.
I'm running this extension in production on a server with >15 days uptime with hundreds of Duo authentications per hour so it must be related to some difference in our environments. My deployment is running using the quay container, which seems to contain a very similar version of Java so I don't think that is related.
Do you have anything in your environment that would be unusual TLS wise? (custom ca certificates installed, SSL inspecting proxy, etc?)
We have a working configuration but after some amount of uptime we start seeing certificate_unknown errors in the Keycloak logs and authentication in the browser fails.
The underlying error is
Unable to build a CertPath: no PKIXBuilderParameters available
This may be a Keycloak or BounceCastle issue, but the only area where we see an issue when this error occurs is when logging into Keycloak using a flow that has Duo configured. Other flows which use authentication mechanisms that reach out to external sources using TLS still work, so seems limited to the Duo provider.
Restarting the application fixes the issue for some amount of time but seems to reappear daily.