We have configured vault to use consul as its backend storage and have encountered a problem with setting up TLS between the two endpoints. I am curious to know if anyone has gotten this work.
Both consul and vault have been configured to communicate over TLS and consul has been configured to perform TLS client authentication on vault's certificate. When vault starts up, the following warning is printed out.
We have set up a self-signed internal CA that has issued two leaf certificates, one for vault and the other for consul. Note that vault is only talking to consul agent in client mode running on the same system as vault. I performed tcpdump of the consul port and verified that the SSL handshake progresses up until the server (consul) requests the client's (vault's) SSL certificate. At that point, the connection drops. It seems like the vault (as a SSL client) is simply refusing to send its SSL certificate to consul (the server).
In consul, if we set verify_incoming_https to false, then vault is able to connect to consul without a problem. We can successfully connect to the consul server using openssl s_client and curl, where in both cases we are using the same certificate and key that vault has been provisioned to use.
Here's the vault version.
Vault v0.8.1 ('8d76a41854608c547a233f2e6292ae5355154695')
We can provide additional information including configurations and x509 certificates if anyone would find this helpful for debugging the problem.
Thanks,
Joe