Actually, this one of many possible reasons for the error. You can confirm this is the issue in browser console if you see “Failed to load resource: net::ERR_CERT_DATE_INVALID Port 8003”
Apparently FreePBX “certificate integration” is not well integrated.
Fully updated FreePBX 16, “Unable to connect to the UCP Node Server. Error: xhr poll error” in UCP, but the page displays correctly.
Advanced setting for NodeJS would not change from /etc/asterisk/keys/integration to /etc/asterisk/pbx.mycompany.com, which is where LetsEncrypt puts them. After much digging around, I found the location is fixed in table asterisk.freepbx_settings.
I changed keyword NODEJSTLSCERTFILE to /etc/asterisk/keys/pbx.mycompany.com/fullchain.pem and NODEJSTLSPRIVATEKEY to /etc/asterisk/keys/pbx.mycompany.com/private.pem. Then ‘fwconsole reload’ and ‘fwconsole restart ucp’. Problem solved.