-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HA VPE fails to connect during onboarding or audibly reply if HTTPS internal network URL is used #286
Comments
I have mostly the same problem. I'm using a self signed certificate with an own managed CA. I checked the ESPHOME debug output and found out, that the voice response is called with external nabu.casa URL instead of the configured local URL. Could that be the reason?
Currently I'm lost how to fix that problem without deactivating SSL. Logs of a failed voice response:
Logs of a working voice response: You can see there are now ~7 seconds between MEDIA_PLAYER_STATE_PLAYING and MEDIA_PLAYER_STATE_IDLE. That is the time, where the VPE gives the voice response
|
Same issue, kind of sucks to need to bypass HTTPS. Any device that is designed to work locally should really support a locally managed CA. |
@the-rexmundi this suggests that Just double checking you are just using the native HTTP server in your HA instance? |
@Silvenga thanks for the link, for some reason I did not find that thread when I googled the error code. I am a bit lost by the conversation there because "[sysizlayan] [on May 17, 2019]" suggests that the server rejected the connection, but we are not talking about client certificates here. What does a server care if you do not trust it's CA? Is it that the client process of ESP does not trust Let's Encrypt CA? I followed the instructions here: https://community.home-assistant.io/t/how-to-configure-lets-encrypt-ssl-certificates-for-home-assistant-completely-100-free-updated-for-2022-2023/508329 The certificate PEM is installed in configuration.yaml as per the instructions in the linked article for internal use only, Home Assistant Cloud is used for external connections. Based on the instructions, I believe that I am using the native HTTPS server and not a proxy solution like NGINX. |
@the-rexmundi client certificates are sent after the Server Hello. Your logs suggests what appears to be a failure after the client sends it's Client Hello and before the Server sends it's Hello (the
It appears the server is rejecting what the client is proposing (in the Client Hello), which is typically things like which cipher suites the client supports (which could mean the ESP is requesting an older/less secure cipher that our servers are rejecting). But @jonofe's issue might be completely different. I am wondering if it's actually CA related, since normally the client will tell the server that the CA isn't trusted, and I'm not seeing that at all on the server side (I'm not discounting Let's Encrypt as a possibly untrusted CA, they are relatively new still). So I'm wondering if it's something a bit more lower level (maybe a esp-idf limitation or bug). I was planning on playing with the cipher suites to see if that fixes this. So @the-rexmundi you are using the native HTTPS server. @jonofe, are you also using the native HTTPS server too? (I'm personally using Nginx for TLS termination) |
Yes, I'm using the native SSL support of HA.
I have my own CA and the SSL certificate is signed by that CA. On my clients (Win,Android, iOS) I have imported the CA certificate, so my clients trust my CA. And I can imagine, that in case of a failed verification of the SSL certificate Voice-PE tries then the public URL via nabucasa (in case you have a subscription). Timing problems could lead to the situation, that this works in few cases, but in most cases not. But that's only my imagination. Hope the developers can clarify that soon. |
Core 2025.1.2
Supervisor 2024.12.3
Operating System 14.1
Frontend 20250109.0
ESPHome Firmware 2024.12.2
Using Let's Encrypt certificate for internal web UI
Steps to reproduce:
Steps to work-around
This seems to be a poor outcome in that it forces a security downgrade just to get VPE working. I would not call downgrading from HTTPS to HTTP a solution, just a work around.
FAIL HTTPS logs_home-assistant-voice-0908af_logs.txt
SUCCEED HTTP logs_home-assistant-voice-0908af_logs.txt
The text was updated successfully, but these errors were encountered: