We're having issues getting sync to work over HTTPS.
We found a post that referenced a sybase blog post that no longer exists, but managed to dig it up via the WaybackMachine:
We've tried using this - but we always get an exception:
com.ianywhere.ultralitejni12.implementation.JniException: UltraLiteJ Error[-1305]: MobiLink communication error -- code: 24, parameter: , system code: 336134278
(code 24 is SECURE_CERTIFICATE_NOT_TRUSTED)
Is there more to it than simply using streamParams.setTrustedCertificates(/path/to/my_cert.pem) ? Do we need to create a BKS for the app? The blog post I've referenced above doesn't seem to indicate this is necessary..
Any help would be much appreciated!
asked 06 Mar '14, 10:55
It's a long time since I wrote that post, so my memory is fuzzy (but it certainly did work at the time). You don't need to create a BKS for the app because the scenario unpacks the public certificate and stores it in the file system, and then the setTrustedCertificates reads it from the file system.
The things to check, if you are trying to reproduce the post, are:
If you want to eliminate sources of error, I would recommend using the SYNCHRONIZE statement in ISQL and synchronizing from the desktop. If you use trusted_certificate and get a successful sync, you know that the certificates are compatible.
To some extent, it's an atypical scenario as you would be more likely to have a server-side certificate that is in a chain to some certificate authority (instead of a self-signed cert) and you would use a client-side cert in the device's certificate store that knows about that authority.