SSL Certificate and New App

I'm new to the product and this forum, and could not agree more with jeremy.akers sentiments. I am a security professional and regularly make use of IPSec VPN to access my local network. My network and access security posture is based on my private PKI environment, where all certs utilized are generated through my internal CA. This is not for everyone, but when I can't install one of my own certs I generally place the device behind reverse-proxy. It would make it easier to allow users to deploy their own self-signed certs. As stated by others, this is done all the time without weakening the device security profile. To ensure Hubitat cert/key pair security a factory-reset option could be added that regenerates a new cert/key pair each time the device is reset. But there need to be a self-signed cert/CA option.

Cheers,
Darwin

2 Likes

@patrick, any update on this?

I'm working on a device handler that communicates with my local OpenWRT router which uses a self-signed SSL Cert and I've run into the same issue.

I totally agree with the comments of @jeremy.akers and @darwin1357 above. We desperately need functionality to import our own private (self-signed) certificates into Hubitat.

Suggesting that we should fall back to using non-secure http connections is not really acceptable and not even feasible in many cases.

There is no update, It is still on our list of things to do, but has not been implemented.

Glad it's being considered at least.
Allowing import through the admin interface and the ability to specify a specific self-signed certificate to use for an HTTPS connection would open up integration options for a few devices with closed APIs. The non-pro Lutron Caseta hub being my number one target, Home Assistant has this solved but it requires this feature if I understand their implementation correctly.

Even once the ability to add certs to HE is implemented, that will not help to develop a native HE driver for the non-pro bridge.

The non-pro must use the "LEAP" protocol. In order to use this protocol, a client must:

  1. generate a unique private key/public key pair
  2. generate a CSR using the private key
  3. log on to the lutron device management server
  4. get the lutron device management server to sign the CSR. This generates an "App Certificate" and a "remote certificate".

Once that is done, the client then communicates directly with the bridge using an SSH connection with the private keyfile as the SSL encryption key, the App certificate as the client certificate and the remote certificate as the CA Certificate chain.

So... This issues are...

  1. getting a private/public key pair requires crypto functions. HE does not (yet?) support crypto functions
  2. the communication to the bridge requires the ability to do an SSH connection with the bridge. HE does not support SSH. HE does support Telnet, so SSL over telnet could work, but SSL requires crypto... See item 1.
  3. direct control via the Lutron cloud is not publicly documented, and so far nobody has reverse engineered it. The Documentation is available from Lutron if you are a Lutron partner. Not a viable solution.
1 Like

Home Assistant's component for Lutron Caseta is based on pylutron-caseta which includes this script to generate the key pair. That can be run on a separate PC so I wouldn't expect all that functionality from Hubitat, just the UX to import and manage certs after I've generated them.

That leaves the SSL connection as you pointed out (I thought it was HTTPS to the bridge but was mistaken, it's a TLS socket). We recently got raw sockets so maybe we'll get lucky and the ability to build and specify an SSL context can also be exposed from the underlying Java libraries as part of that feature in the future.

Bumping again for an update.. Thanks Chuck!

it would be great if we could import our own cert

1 Like

Do you think it is possible to connect to Unifi Protect with 2.1.8 firmware?

Release notes...
Added optional flag to ignore SSL issues (ie: self signed certificates) with http calls (httpGet, httpPost, etc)