Certificate architecture
The Conjur Leader, Standbys, and Followers use TLS certificates to secure communication as follows:
Certificate used by |
Needed for |
---|---|
Users or applications | Requests to Conjur HTTPS REST APIs |
Standbys and Followers | Replicating data from the Leader |
Leader and Standbys | Coordinating auto-failover |
Followers | Forwarding audit records to the Leader |
The TLS certificates are critical to the secure operation of Conjur. The overhead of managing these certificates can be reduced by carefully configuring the certificate architecture and individual certificate properties to support strong identities, seamless failover, and regular certificate rotation.
SNI (Server Name Indication) is an extension to the TLS protocol, where the client indicates the hostname it is trying to connect to at the start of the SSL handshake process. This allows a server to present multiple possible certificates on the same IP address and TCP port.
-
SNI should be used with TLS version 1.2 or later. E-SNI is currently not supported.
-
For simplicity, we recommend generating certificates from a trusted CA.
Common Certificate Authority (CA)
The typical certificate architecture for a Conjur Enterprise deployment consists of:
CA certificate |
A common shared CA (this may be an intermediate CA) is used to issue and verify all Conjur cluster node certificates. When using third-party certificates, this CA certificate is imported into the Leader using |
Leader and Standby certificates |
The Leader and Standbys share a single certificate representing the whole Conjur cluster. When a single certificate and private key are shared across all Leader and Standby nodes, this certificate must use the Leader load balancer DNS name as the certificate Common Name (CN), and include each individual node's DNS name in the Subject Alternative Names (SAN). This simplifies the deployment of the Conjur cluster. |
Follower certificates |
Similar to Standbys, Followers use shared certificates to represent Follower clusters behind a load balancer. The certificates for Followers should include only the name of the Follower load balancer in the Common Name (CN). If a load balancer is not being used, the certificate should use the Follower's own DNS name for the Common Name (CN). |
Certificate use in Conjur
This section describes how certificates are used by Conjur in a typical deployment.
Node |
Certificate usage |
---|---|
Leader |
|
Standby |
|
Follower |
|
Postgres database |
The server certificate for TLS transport, for example, conjur.pem. |
Syslog |
The server certificate for syslog communication, for example, conjur.pem. |
Kubernetes Authenticator |
The certificate and key are in the Kubernetes Authenticator policy. With this pair, Conjur creates the client certificate and injects it back to the Kubernetes container. The client used to communicate with the K8s API server uses the hostname specified under the KUBERNETES_SERVICE_HOST environment variable. $
The Kubernetes service port is 443.
|