6.3.4 community: console does not startup after ACME certificate installation

Hi,
I made a clean install with the VMware virtual appliance and the adapted CLI examples, up to ACME installation.
But after a successful ACME certification installation (HTML-01) the console does not start up, and i cannot login to https://IP-address:9090.

Screen shows “systemctl enable – now cockpit.socket”. I can login via ssh and start the cockpit.

The console GUI shows that cm-cockpit-tls-certificate.service failed to start and is now disabled and I get “Copy the system cert to the cockpit tls path and restarts cockpit”.

After a reboot, I must always login via ssh and start the console manually.

The behavior is reproducible; I tried it 3 times, always with a clean VM.

I assume I need to copy the ACME certificate to /etc/cockpit/ws-certs.d, but how exactly does that work?

Is it possible to automate the process so that the certificate for the console is also provisioned after the ACME certificate is updated?

Thanks for any help!

Björn


Logfile

June 25, 2026

12:11 PM

Failed to start Copy the system cert to the cockpit tls path and restarts cockpit.

systemd

12:11 PM

cm-cockpit-tls-certificate.service: Failed with result ‘exit-code’.

systemd

12:11 PM

cm-cockpit-tls-certificate.service: Main process exited, code=exited, status=1/FAILURE

systemd

12:11 PM

Job failed. See “journalctl -xe” for details.

systemctl

12:11 PM

Starting Copy the system cert to the cockpit tls path and restarts cockpit…

systemd

This is some sort of race condition which I though we have fixed. I’m not yet able to reproduce it.

Are there any details about the error in the journal logs?

Hi Martijn,
I could not find any error when running “journalctl -xe”.

I run “systemctl status cockpit.socket” and “systemctl status cm-cockpit-tls-certificate.service” instead:

[sa@cipher1 ~] $ sudo systemctl status cockpit.socket
[sudo] password for sa:
● cockpit.socket - Cockpit Web Service Socket
Loaded: loaded (/usr/lib/systemd/system/cockpit.socket; enabled; preset: disabled)
Active: active (running) since Thu 2026-06-25 10:13:35 UTC; 1h 31min ago
Until: Thu 2026-06-25 10:13:35 UTC; 1h 31min ago
Triggers: ● cockpit.service
Docs: man:cockpit-ws(8)
Listen: [::]:9090 (Stream)
Process: 2973 ExecStartPost=/usr/share/cockpit/issue/update-issue localhost (code=exited, status=0/SUCCESS)
Process: 2980 ExecStartPost=/bin/ln -snf active.issue /run/cockpit/issue (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 22814)
Memory: 8.0K (peak: 2.6M)
CPU: 52ms
CGroup: /system.slice/cockpit.socket

Jun 25 10:13:35 cipher1 systemd[1]: Starting Cockpit Web Service Socket…
Jun 25 10:13:35 cipher1 systemd[1]: Listening on Cockpit Web Service Socket.
[sa@cipher1 ~] $ sudo systemctl status cm-cockpit-tls-certificate.service
× cm-cockpit-tls-certificate.service - Copy the system cert to the cockpit tls path and restarts cockpit
Loaded: loaded (/etc/systemd/system/cm-cockpit-tls-certificate.service; disabled; preset: disabled)
Active: failed (Result: exit-code) since Thu 2026-06-25 10:11:02 UTC; 1h 34min ago
TriggeredBy: ● cm-monitor-cockpit-tls-certificate.path
Main PID: 993 (code=exited, status=1/FAILURE)
CPU: 43ms

Jun 25 10:11:02 cipher1 systemd[1]: Starting Copy the system cert to the cockpit tls path and restarts cockpit…
Jun 25 10:11:02 cipher1 systemctl[993]: Job failed. See “journalctl -xe” for details.
Jun 25 10:11:02 cipher1 systemd[1]: cm-cockpit-tls-certificate.service: Main process exited, code=exited, status=1/FAILURE
Jun 25 10:11:02 cipher1 systemd[1]: cm-cockpit-tls-certificate.service: Failed with result ‘exit-code’.
Jun 25 10:11:02 cipher1 systemd[1]: Failed to start Copy the system cert to the cockpit tls path and restarts cockpit.
[sa@cipher1 ~] $

Thanks Björn

Just to make sure I understand the issue, the certificate is successfully requested with ACME and installed, the Web UI uses the new cert. Cockpit also uses the new cert but it fails starting up after reboot and needs a manual restart?

Can you post the output of the following command after a reboot:

systemctl start cm-cockpit-tls-certificate.service

Yes, exactly. ACME certification installation was successfully, both the Web UI and Cockpit GUI uses the new ACME certificate. Cockpit fails to start, and after starting manually the service cm-cockpit-tls-certificate.service failed. Appliance seems working correctly (I can send mails through the appliance; encryption is not configured yet).
Let me know if I can send you more information.
Björn

For sure:
PS C:> ssh sa@cipher1.abcde.com
sa@cipher1.abcde.com’s password:
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Thu Jun 25 10:19:35 2026 from ::ffff:192.168.5.26
[sa@cipher1 ~] $ systemctl start cm-cockpit-tls-certificate.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
Authentication is required to start ‘cm-cockpit-tls-certificate.service’.
Authenticating as: sa
Password:
==== AUTHENTICATION COMPLETE ====
[sa@cipher1 ~] $

After executing “systemctl enable --now cockpit.socket” to start Cockpit, the screen shows that /etc/rc.d/rc.local is not marked executable.
Hope this helps.

Sorry forgot to add sudo and status command

Can you try this after reboot and show the output

sudo systemctl start cm-cockpit-tls-certificate.service
sudo systemctl status cm-cockpit-tls-certificate.service

[sa@cipher1 ~] $ sudo systemctl start cm-cockpit-tls-certificate.service
[sudo] password for sa:
[sa@cipher1 ~] $ sudo systemctl status cm-cockpit-tls-certificate.service
○ cm-cockpit-tls-certificate.service - Copy the system cert to the cockpit tls path and restarts cockpit
Loaded: loaded (/etc/systemd/system/cm-cockpit-tls-certificate.service; disabled; preset: disabled)
Active: inactive (dead) since Thu 2026-06-25 12:25:26 UTC; 13s ago
TriggeredBy: ● cm-monitor-cockpit-tls-certificate.path
Process: 2496 ExecStart=/bin/bash -c openssl crl2pkcs7 -nocrl -certfile /etc/pki/tls/private/ciphermail.tls.pem | o>
Process: 2499 ExecStart=/bin/bash -c openssl pkey -in /etc/pki/tls/private/ciphermail.tls.pem > /etc/cockpit/ws-cer>
Process: 2501 ExecStart=chown root:root /etc/cockpit/ws-certs.d/cockpit.cert (code=exited, status=0/SUCCESS)
Process: 2502 ExecStart=chown root:root /etc/cockpit/ws-certs.d/cockpit.key (code=exited, status=0/SUCCESS)
Process: 2503 ExecStart=chmod 640 /etc/cockpit/ws-certs.d/cockpit.cert (code=exited, status=0/SUCCESS)
Process: 2504 ExecStart=chmod 640 /etc/cockpit/ws-certs.d/cockpit.key (code=exited, status=0/SUCCESS)
Process: 2505 ExecStart=systemctl restart cockpit.socket (code=exited, status=0/SUCCESS)
Main PID: 2505 (code=exited, status=0/SUCCESS)
CPU: 81ms

Jun 25 12:25:26 cipher1 systemd[1]: Starting Copy the system cert to the cockpit tls path and restarts cockpit…
Jun 25 12:25:26 cipher1 systemd[1]: cm-cockpit-tls-certificate.service: Deactivated successfully.
Jun 25 12:25:26 cipher1 systemd[1]: Finished Copy the system cert to the cockpit tls path and restarts cockpit.

That looks normal. Can you check that the cockpit app works after reboot and after starting:

sudo systemctl start cm-cockpit-tls-certificate.service

Looks fine:
[sa@cipher1 ~] $ sudo systemctl start cm-cockpit-tls-certificate.service
[sudo] password for sa:
[sa@cipher1 ~] $

for some reason “cm-cockpit-tls-certificate.service” fails when it is started during startup of the VM but not when the VM is already started. We added the following line to the systed unit which fixed the issue for someone else:

After=cockpit.socket

But is looks like it is not sufficient.

Can you show the output of this command right after a restart (i.e., before manually starting anything)

sudo systemctl status cm-cockpit-tls-certificate.service

Last login: Thu Jun 25 12:52:52 2026 from ::ffff:192.168.5.26
[sa@cipher1 ~] $ sudo systemctl status cm-cockpit-tls-certificate.service
[sudo] password for sa:
× cm-cockpit-tls-certificate.service - Copy the system cert to the cockpit tls path and restarts cockpit
Loaded: loaded (/etc/systemd/system/cm-cockpit-tls-certificate.service; disabled; preset: disabled)
Active: failed (Result: exit-code) since Thu 2026-06-25 13:00:24 UTC; 47s ago
TriggeredBy: ● cm-monitor-cockpit-tls-certificate.path
Process: 923 ExecStart=/bin/bash -c openssl crl2pkcs7 -nocrl -certfile /etc/pki/tls/private/ciphermail.tls.pem | op>
Process: 932 ExecStart=/bin/bash -c openssl pkey -in /etc/pki/tls/private/ciphermail.tls.pem > /etc/cockpit/ws-cert>
Process: 954 ExecStart=chown root:root /etc/cockpit/ws-certs.d/cockpit.cert (code=exited, status=0/SUCCESS)
Process: 1037 ExecStart=chown root:root /etc/cockpit/ws-certs.d/cockpit.key (code=exited, status=0/SUCCESS)
Process: 1069 ExecStart=chmod 640 /etc/cockpit/ws-certs.d/cockpit.cert (code=exited, status=0/SUCCESS)
Process: 1072 ExecStart=chmod 640 /etc/cockpit/ws-certs.d/cockpit.key (code=exited, status=0/SUCCESS)
Process: 1073 ExecStart=systemctl restart cockpit.socket (code=exited, status=1/FAILURE)
Main PID: 1073 (code=exited, status=1/FAILURE)
CPU: 45ms

Jun 25 13:00:24 cipher1 systemd[1]: Starting Copy the system cert to the cockpit tls path and restarts cockpit…
Jun 25 13:00:24 cipher1 systemctl[1073]: Job failed. See “journalctl -xe” for details.
Jun 25 13:00:24 cipher1 systemd[1]: cm-cockpit-tls-certificate.service: Main process exited, code=exited, status=1/FAIL>
Jun 25 13:00:24 cipher1 systemd[1]: cm-cockpit-tls-certificate.service: Failed with result ‘exit-code’.
Jun 25 13:00:24 cipher1 systemd[1]: Failed to start Copy the system cert to the cockpit tls path and restarts cockpit.

[sa@cipher1 ~] $

What is the output of

sudo journalctl -u cockpit.socket

[sa@cipher1 ~] $ sudo journalctl -u cockpit.socket
[sudo] password for sa:
Jun 25 07:40:03 localhost systemd[1]: Starting Cockpit Web Service Socket…
Jun 25 07:40:03 localhost systemd[1]: Listening on Cockpit Web Service Socket.
Jun 25 07:40:04 localhost systemd[1]: Stopping Cockpit Web Service Socket…
Jun 25 07:40:04 localhost systemd[1]: cockpit.socket: Deactivated successfully.
Jun 25 07:40:04 localhost systemd[1]: Closed Cockpit Web Service Socket.
Jun 25 07:40:04 localhost systemd[1]: Starting Cockpit Web Service Socket…
Jun 25 07:40:04 localhost systemd[1]: Listening on Cockpit Web Service Socket.
Jun 25 07:48:50 cipher1 systemd[1]: Stopping Cockpit Web Service Socket…
Jun 25 07:48:50 cipher1 systemd[1]: cockpit.socket: Deactivated successfully.
Jun 25 07:48:50 cipher1 systemd[1]: Closed Cockpit Web Service Socket.
– Boot c7f79a95e36e45bd87bb4de603909534 –
Jun 25 07:48:59 cipher1 systemd[1]: Starting Cockpit Web Service Socket…
Jun 25 07:48:59 cipher1 systemd[1]: Listening on Cockpit Web Service Socket.
– Boot d2ab84de396946828a0c2de2c8cce39a –
Jun 25 07:55:59 cipher1 systemd[1]: Starting Cockpit Web Service Socket…
Jun 25 07:55:59 cipher1 systemd[1]: Listening on Cockpit Web Service Socket.
– Boot 0894366f647444e98079acf713a5771d –
Jun 25 09:54:29 cipher1 systemd[1]: Starting Cockpit Web Service Socket…
Jun 25 09:54:29 cipher1 systemd[1]: Listening on Cockpit Web Service Socket.
– Boot bd442a46e9dd473b9db74ff5903e0a05 –
Jun 25 10:02:51 cipher1 systemd[1]: Starting Cockpit Web Service Socket…
Jun 25 10:02:51 cipher1 systemd[1]: Listening on Cockpit Web Service Socket.
Jun 25 10:09:20 cipher1 systemd[1]: Stopping Cockpit Web Service Socket…
Jun 25 10:09:20 cipher1 systemd[1]: cockpit.socket: Deactivated successfully.
Jun 25 10:09:20 cipher1 systemd[1]: Closed Cockpit Web Service Socket.
Jun 25 10:09:20 cipher1 systemd[1]: Starting Cockpit Web Service Socket…
Jun 25 10:09:20 cipher1 systemd[1]: Listening on Cockpit Web Service Socket.
– Boot 826cd2ef7cd74a0aaa66997a85316282 –
Jun 25 10:11:00 cipher1 systemd[1]: Starting Cockpit Web Service Socket…
Jun 25 10:11:00 cipher1 systemd[1]: Listening on Cockpit Web Service Socket.
Jun 25 10:11:02 cipher1 systemd[1]: Stopping Cockpit Web Service Socket…
Jun 25 10:11:02 cipher1 systemd[1]: cockpit.socket: Deactivated successfully.
Jun 25 10:11:02 cipher1 systemd[1]: Closed Cockpit Web Service Socket.
Jun 25 10:11:02 cipher1 systemd[1016]: cockpit.socket: Failed to create listening socket ([::]:9090): Address already i>
Jun 25 10:11:02 cipher1 systemd[1]: cockpit.socket: Failed to receive listening socket ([::]:9090): Input/output error
Jun 25 10:11:02 cipher1 systemd[1]: cockpit.socket: Failed to listen on sockets: Input/output error
Jun 25 10:11:02 cipher1 systemd[1]: Starting Cockpit Web Service Socket…
Jun 25 10:11:02 cipher1 systemd[1]: cockpit.socket: Failed with result ‘resources’.
Jun 25 10:11:02 cipher1 systemd[1]: Failed to listen on Cockpit Web Service Socket.
Jun 25 10:13:35 cipher1 systemd[1]: Starting Cockpit Web Service Socket…
Jun 25 10:13:35 cipher1 systemd[1]: Listening on Cockpit Web Service Socket.
– Boot a4610c94c23841c9905618341033ef98 –
Jun 25 12:12:32 cipher1 systemd[1]: Starting Cockpit Web Service Socket…
Jun 25 12:12:32 cipher1 systemd[1]: Listening on Cockpit Web Service Socket.
Jun 25 12:12:34 cipher1 systemd[1]: Stopping Cockpit Web Service Socket…
Jun 25 12:12:34 cipher1 systemd[1]: cockpit.socket: Deactivated successfully.
Jun 25 12:12:34 cipher1 systemd[1]: Closed Cockpit Web Service Socket.
Jun 25 12:12:34 cipher1 systemd[986]: cockpit.socket: Failed to create listening socket ([::]:9090): Address already in>
Jun 25 12:12:34 cipher1 systemd[1]: cockpit.socket: Failed to receive listening socket ([::]:9090): Input/output error
Jun 25 12:12:34 cipher1 systemd[1]: cockpit.socket: Failed to listen on sockets: Input/output error
Jun 25 12:12:34 cipher1 systemd[1]: Starting Cockpit Web Service Socket…
Jun 25 12:12:34 cipher1 systemd[1]: cockpit.socket: Failed with result ‘resources’.
Jun 25 12:12:34 cipher1 systemd[1]: Failed to listen on Cockpit Web Service Socket.
Jun 25 12:13:33 cipher1 systemd[1]: Starting Cockpit Web Service Socket…
Jun 25 12:13:33 cipher1 systemd[1]: Listening on Cockpit Web Service Socket.
– Boot 93b8d2f16af74cf7a1b9c140704e619b –
Jun 25 12:24:28 cipher1 systemd[1]: Starting Cockpit Web Service Socket…
Jun 25 12:24:28 cipher1 systemd[1]: Listening on Cockpit Web Service Socket.
Jun 25 12:24:29 cipher1 systemd[1]: Stopping Cockpit Web Service Socket…
Jun 25 12:24:29 cipher1 systemd[1]: cockpit.socket: Deactivated successfully.
Jun 25 12:24:29 cipher1 systemd[1]: Closed Cockpit Web Service Socket.
Jun 25 12:24:29 cipher1 systemd[1061]: cockpit.socket: Failed to create listening socket ([::]:9090): Address already i>
Jun 25 12:24:29 cipher1 systemd[1]: cockpit.socket: Failed to receive listening socket ([::]:9090): Input/output error

[sa@cipher1 ~] $