-
Notifications
You must be signed in to change notification settings - Fork 409
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DTLS Client Certificate Chain not sent #897
Comments
@schirrmacher, I was thinking about this, any reason why you close it ? |
@schirrmacher you raised a well-known issue, I will try to get answer from OMA : OpenMobileAlliance/OMA_LwM2M_for_Developers#502 |
Only the client certificate chain is not clear in LWM2M specification. |
I have changes for client to send chain (PR #896) but storage seems to be something that is not optimal. |
Following OpenMobileAlliance/OMA_LwM2M_for_Developers#502 (comment), the lwm2m specification clarify that client certificate chain is limited to only 1 certificate. I close this issue, but it could be related in a way to #1135.. |
Currently we are implementing client/server DTLS communication with Leshan for an IoT project. Unfortunately, the handshake fails because the Leshan client just sends a single certificate to the Leshan Server (recorded with Wireshark) instead of the whole chain (Root CA -> Intermediate CA -> Client Cert):
13:44:43.387 [DTLS-Retransmit-Task-1] DEBUG org.eclipse.californium.scandium.dtls.CertificateMessage - created CERTIFICATE message with certificate chain [length: 1]
The server's certificate message contains the expected chain, so there is no problem with the
LeshanServerBuilder
.We definitely set the chain in the DTLS client config:
In the
createEndpoint(ServerInfo serverInfo)
method ofCaliforniumEndpointsManager
I noticed the following:newBuilder.setIdentity(serverInfo.privateKey, new Certificate[] { serverInfo.clientCertificate });
is called.This call overwrites the chain of certificates. So a single certificate (the client certificate) is written to the DTLS config, instead of the whole certificate chain. After that
createSecuredEndpoint
is called with an invalid certificate chain based on the DTLS config builder, callednewBuilder
.Is this a bug or should I check other parameters of my LeshanClient?
The text was updated successfully, but these errors were encountered: