I have a cluster of 3 Consul servers. I have enabled ACLs in the bootstrap server which also has the UI enabled. But when I try to connect to the https end point, I get an error. What could be the problem?
Thanks for any insights.
My config.json:
{
"bootstrap": true,
"node_name": "host1",
"server": true,
"data_dir": "/tmp/consul",
"encrypt": "blahblah",
"log_level": "INFO",
"ca_file": "/etc/consul.d/ssl/ca.cert",
"cert_file": "/etc/consul.d/ssl/consul.cert",
"key_file": "/etc/consul.d/ssl/consul.key",
"verify_incoming": true,
"verify_outgoing": true,
"enable_syslog": true,
"acl_token": "token123",
"acl_datacenter": "dal",
"acl_master_token": "master123",
"ports": {
"https": 8501
}
}
When I point my browser to the HTTPport (8500), this is what I get in the browser:
HTTP error code from Consul: 403 Forbidden
This is an error page for the Consul web UI. You may have visited a URL that is loading an unknown resource, so you can try going back to the root.
Otherwise, please report any unexpected issues on the GitHub page.
When I point to HTTPS port, this is what I get:
This site can’t provide a secure connection
10.204.42.21 didn’t accept your login certificate, or your login certificate may have expired.
Try contacting the system admin.
ERR_BAD_SSL_CLIENT_AUTH_CERT
In the latter case, it appears that Consul server is looking to do a 2-way SSL handshake. I verified that with openSSL - I can connect successfully to the server using s_client.
The documentation on ACL appears to be very spotty and not comprehensive enough. Without ACLs, I think Consul is not secure enough for deployment in a production environment. Lack of good documentation with examples is a bit road block for us to adopt Consul. Does everyone feel this way? Any good pointers to ACL implementations?
Thanks!