You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When updating the consul agent's TLS cert (cert_file) and running consul reload we see the new cert being used correctly for the https API but the grpc API continues to use the previous cert. The only solution appears to be a full consul agent restart.
We just updated our certificate, and we can see the new cert used on the https port:
And at the time of writing this issue it is currently Fri Mar 6 01:30:51 UTC 2020
Reproduction Steps
Steps to reproduce this issue, eg:
Create a cluster with 3 client nodes and 3 server nodes
run the command openssl s_client -connect localhost:8501 2>/dev/null | openssl x509 -noout -dates and record the expiration dates of the https api
run the command openssl s_client -connect localhost:8502 2>/dev/null | openssl x509 -noout -dates and record the expiration dates of the grpc api
Create a new certificate with the different expiration date
Deploy your new certificate to any of the hosts
run consul reload to bring in the latest cert
run the command openssl s_client -connect localhost:8501 2>/dev/null | openssl x509 -noout -dates to validate the new https cert has been reloaded and is being used.
run the command openssl s_client -connect localhost:8502 2>/dev/null | openssl x509 -noout -dates to validate the new grpc cert has been reloaded and is being used ... however you will not see this happening.
We are using consul connect and envoy, and what we saw once the grpc certificate expired was that a new envoy sidecar could not be correctly configured after launching it, there would just be these logs on the agent:
2020/03/06 00:34:27 [WARN] grpc: Server.Serve failed to complete security handshake from "127.0.0.1:37486": remote error: tls: expired certificate
The text was updated successfully, but these errors were encountered:
The PR only mentions auto_encrypt, but does that change also cover reloading certs from disk?
is there any chance this will be backported into 1.5 or 1.6? We see this as a big consul connect bug that is currently causing a lot of operational overhead to restart all clients.
@cbarbara-okta yes, the grpc server now benefits from the same TLS config reloading mechanism that is used across consul. I will get back to you re your second question....
Overview of the Issue
When updating the consul agent's TLS cert (
cert_file
) and runningconsul reload
we see the new cert being used correctly for the https API but the grpc API continues to use the previous cert. The only solution appears to be a full consul agent restart.We just updated our certificate, and we can see the new cert used on the https port:
However you can see that the grpc port is still serving the old cert:
And at the time of writing this issue it is currently
Fri Mar 6 01:30:51 UTC 2020
Reproduction Steps
Steps to reproduce this issue, eg:
openssl s_client -connect localhost:8501 2>/dev/null | openssl x509 -noout -dates
and record the expiration dates of the https apiopenssl s_client -connect localhost:8502 2>/dev/null | openssl x509 -noout -dates
and record the expiration dates of the grpc apiconsul reload
to bring in the latest certopenssl s_client -connect localhost:8501 2>/dev/null | openssl x509 -noout -dates
to validate the new https cert has been reloaded and is being used.openssl s_client -connect localhost:8502 2>/dev/null | openssl x509 -noout -dates
to validate the new grpc cert has been reloaded and is being used ... however you will not see this happening.Consul info for both Client and Server
Client info
Server info
Operating system and Environment details
Amazon linux 1 - 4.14.128-87.105.amzn1.x86_64
Our sample config file
Log Fragments
We are using consul connect and envoy, and what we saw once the grpc certificate expired was that a new envoy sidecar could not be correctly configured after launching it, there would just be these logs on the agent:
The text was updated successfully, but these errors were encountered: