Connection from Android phone to Joplin server returns CertPathValidatorException

Hello forum,

i am new here but i have already read a lot here. Unfortunately at the moment I am failing with a problem for which I have not found any help here and elsewhere.
I have successfully set up Joplin Server (2.12.1-beta), Postgres and Caddy with three Docker containers. All three containers are on the same Docker network. The host does not have a domain name (yet). I am using the fixed IP address of the host here.

The caddy acts as a relay proxy (caddyfile):

...
myip:443 {
handle_path /joplin* {
reverse_proxy joplinServer:22300
}
...

I tested the server with two different machines and desktop clients installed.

Server entry: 'https ://my-ip/joplin'
Ignore TLS certificate errors = true

The caddy generates its own SSL/TLS certificates.

Everything works fine. But when I try to connect from an Android phone (Version 12) with the same settings I get the following error log on my Android:

08-15T09:32:05,30,"RevisionService: ""maintenance: Starting...""
08-15T09:32:05,30,"RevisionService: ""maintenance: Service is enabled""
08-15T09:28:38,30,"""DecryptionWorker: cannot start because no master key is currently loaded.""
08-15T09:28:37,30,"RevisionService: ""maintenance: Done in 333ms""
08-15T09:28:37,30,"RevisionService: ""collectRevisions: Created revisions for 0 notes""
08-15T09:28:37,30,"root: ""root.biometrics: biometricsDone", "true""
08-15T09:28:37,30,"root: ""root.biometrics: biometricsEnabled", "false""
08-15T09:28:37,30,"root: ""root.biometrics: shouldShowMainContent", "true""
08-15T09:28:37,30,"root: ""root.biometrics: this.state.sensorInfo", "{"enabled":false,"sensorsHaveChanged":false,"supportedSensors":""}""
08-15T09:28:37,20,"Synchronizer: ""Error: uploadBlob: PUT https ://My-IP/joplin/api/items/root:/.resource/d557fbc4a77c40659945ee2f176e2e66:/content: Error: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
Error: uploadBlob: PUT https ://My-IP/joplin/api/items/root:/.resource/d557fbc4a77c40659945ee2f176e2e66:/content: Error: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
at ?anon_0_ (address at index.android.bundle:1:2920221)
at throw (native)
at asyncGeneratorStep (address at index.android.bundle:1:512893)
at _throw (address at index.android.bundle:1:513210)
at tryCallOne (/root/react-native/ReactAndroid/hermes-engine/.cxx/MinSizeRel/164673tg/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:53:16)
at anonymous (/root/react-native/ReactAndroid/hermes-engine/.cxx/MinSizeRel/164673tg/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:139:27)
at apply (native)
at anonymous (address at index.android.bundle:1:214542)
at _callTimer (address at index.android.bundle:1:213491)
at _callReactNativeMicrotasksPass (address at index.android.bundle:1:213655)
at callReactNativeMicrotasks (address at index.android.bundle:1:215619)
at __callReactNativeMicrotasks (address at index.android.bundle:1:116014)
at anonymous (address at index.android.bundle:1:115107)
at __guard (address at index.android.bundle:1:115855)
at flushedQueue (address at index.android.bundle:1:115018)
at invokeCallbackAndReturnFlushedQueue (address at index.android.bundle:1:114961)""
08-15T09:28:37,30,"Synchronizer: ""Total folders: 1""
08-15T09:28:37,30,"Synchronizer: ""Total notes: 5""
08-15T09:28:37,30,"Synchronizer: ""Total resources: 3""
08-15T09:28:37,20,"Synchronizer: ""There was some errors:""
08-15T09:28:37,30,"Synchronizer: ""Operations completed: ""
08-15T09:28:37,30,"Synchronizer: ""createRemote: 1""
08-15T09:28:37,30,"Synchronizer: ""Sync: finished: Synchronisation finished [1692084494587]""

Please give me a hint what I missed here.

Stefan

Am I the only one with this problem?
Can someone please help me?

I have now installed Joplin Client on an iPhone and it works with my self set up Joplin Server without any problems.

With the Windows Joplin Client it works as well.

I have two android phones to test it and the sycronization does not work on both of them.

The test of the settings is positive.

I have done a Joplin update on one Android (version 2.12.2) also here always the same error message: Synchronizer: Error: uploadBlob: PUT https servername/joplin/api/items/root:/.resource/d557fbc4a77c40659945ee2f176e2e66:/content:
Error: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

I can't find any errors in the server logs. I have already installed the certificate of the server without success.

Does anyone know the problem?

Stefan

Solution!

I was able to solve the problem. The problem was on my server. I had installed the SSL certificates so that any browser could access the web pages without errors, but I had not created a ChainFile (CA Bundle). Once I created this file and included it in the web server, the Joplin app on Android synced immediately.
I hope this helps others who have the same problem.

Stefan

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.