Linux Desktop Client App Selfsigned Certificate Problem (but working on Mac and iOS)

Hey guys,

I am stuck and need help.
I have Bitwarden running on a Raspberry Pi with Docker. Selfsigned certificates are in use here.
I can log in via the Apple products after installing the certificates. Only with Linux do I have problems.
I have imported the certificate as shown here (Certificate Options | Bitwarden Help & Support). Using openssl (openssl s_client -CApath /etc/ssl/certs/ -connect 192.168.178.103:443) I have a succesful verification.
However, with the desktop app I get the following error message:
vendor.js:124506 POST https://192.168.178.103/api/accounts/prelogin net::ERR_CERT_AUTHORITY_INVALID
Do you have any advice or tips?

Many Thanks Philip

Hi @phil2021 - did you also update the trusted certificate list:
https://bitwarden.com/help/article/certificates/#trust-a-self-signed-certificate

Hey David,
yes I had done that.
(Thanks for the effort to help me!)

Hello all,

Unfortunately, I still have no success. I have installed a new Linux version, but nothing has changed with my problem.
I started bitwarden with the terminal and got some error messages, maybe one of you knows if this is the reason.

(node:8321) DeprecationWarning: file property is deprecated and will be removed in v5.
(node:8321) electron: The default of contextIsolation is deprecated and will be changing from false to true in a future release of Electron. See https://github.com/electron/electron/issues/23506 for more information
(node:8321) UnhandledPromiseRejectionWarning: TypeError: Cannot read property ‘setContextMenu’ of undefined
at tray_main_TrayMain.updateContextMenu (/opt/Bitwarden/resources/app.asar/main.js:2070:23)
at messaging_main_MessagingMain.updateTrayMenu (/opt/Bitwarden/resources/app.asar/main.js:1512:28)
at messaging_main_MessagingMain.onMessage (/opt/Bitwarden/resources/app.asar/main.js:1450:22)
at messaging_main_MessagingMain. (/opt/Bitwarden/resources/app.asar/main.js:1441:154)
at Generator.next ()
at /opt/Bitwarden/resources/app.asar/main.js:1419:71
at new Promise ()
at messaging_main_awaiter (/opt/Bitwarden/resources/app.asar/main.js:1415:12)
at IpcMainImpl. (/opt/Bitwarden/resources/app.asar/main.js:1441:82)
at IpcMainImpl.emit (events.js:315:20)
(node:8321) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see Command-line options | Node.js v16.8.0 Documentation). (rejection id: 1)
(node:8321) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Having the exact same issue. Adding the self-signed certificates as instructed in Certificate Options | Bitwarden Help & Support doesn’t work as expected. The linux desktop app rejects the traffic regardless.

Hello,
i contacted bitwarden support and someone replied to me. The answer also worked as a solution for me.
Here it is:
Please install Chromium on that Linux machine and add your self-signed certificate to Chromium so it becomes trusted by it, then reboot.

Update: Feedback from Bitwarden Support, why you have to do it this way:
This partly relates to the fact that the desktop client is based on Electron, and the certificates that it uses may come from the browser on the machine. This is not usually the case, but in some situations adding the certificates to Chromium on Linux helps.

1 Like