Please fill out the fields below so we can help you better. Note: you must provide your domain name to get help. Domain names for issued certificates are all made public in Certificate Transparency logs (e.g. https://crt.sh/?q=example.com), so withholding your domain name here does not increase secrecy, but only makes it harder for us to provide help.
My domain is: spctr.dev
I ran this command: curl https://api.vision.spctr.dev/greet/ -vs
It produced this output:
This is just to illustrate that the HTTPs end-point is indeed backed by Let’s Encrypt based certificate. However the real issue is when the end-point is invoked from Java where-in it fails with SSLHandshakeException
* Server certificate:
* subject: CN=*.spctr.dev
* start date: Dec 20 01:38:34 2019 GMT
* expire date: Mar 19 01:38:34 2020 GMT
* subjectAltName: host "api.vision.spctr.dev" matched cert's "*.vision.spctr.dev"
* issuer: C=US; O=Let's Encrypt; CN=Let's Encrypt Authority X3
* SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x7f959200e800)
> GET /greet/ HTTP/2
> Host: api.vision.spctr.dev
> User-Agent: curl/7.54.0
> Accept: */*
>
* Connection state changed (MAX_CONCURRENT_STREAMS updated)!
< HTTP/2 200
< content-type: application/json
< date: Fri, 10 Jan 2020 22:53:38 GMT
< content-length: 26
< x-envoy-upstream-service-time: 6
< server: istio-envoy
<
* Connection #0 to host api.vision.spctr.dev left intact
{"message":"Hello World!"}%
My web server is (include version): Weblogic
starting weblogic with Java version:
java version "1.7.0_241"
Java(TM) SE Runtime Environment (build 1.7.0_241-b60)
Java HotSpot(TM) 64-Bit Server VM (build 24.241-b60, mixed mode)
The operating system my web server runs on is (include version):
Linux, amd64, 4.1.12-124.31.1.el6uek.x86_64
My hosting provider, if applicable, is: N/a
I can login to a root shell on my machine (yes or no, or I don’t know): Yes
I’m using a control panel to manage my site (no, or provide the name and version of the control panel): No
The version of my client is (e.g. output of certbot --version
or certbot-auto --version
if you’re using Certbot): certbot 1.0.0
Question :
When I invoke rest end-point backed by Let’s Encrypt based cert it throws -
com.sun.jersey.api.client.ClientHandlerException, msg=javax.net.ssl.SSLHandshakeException
As per this - https://letsencrypt.org/docs/certificate-compatibility/ … Let’s Encrypt certificates are supported in following Java versions -
Java 7 >= 7u111
Java 8 >= 8u101
and as per this doc here - https://www.oracle.com/technetwork/java/javase/7u111-relnotes-3021775.html … “7u111” translates to “1.7.0_111-b13”
Given that the Java version on my server is “1.7.0_241-b60” which is higher than “1.7.0_111-b13” why is the cert from Let’s Encrypt not recognized ?