Plug in CA Certificates
This task shows how administrators can configure the Istio certificate authority (CA) with a root certificate, signing certificate and key.
By default, Istio’s CA generates a self-signed root certificate and key, and uses them to sign the workload certificates. Istio’s CA can also sign workload certificates using an administrator-specified certificate and key, and with an administrator-specified root certificate.
A root CA is used by all workloads within a mesh as the root of trust. Each Istio CA uses an intermediate CA signing key and certificate, signed by the root CA. When multiple Istio CAs exist within a mesh, this establishes a hierarchy of trust among the CAs.
This task demonstrates how to generate and plug in the certificates and key for Istio’s CA. These steps can be repeated to provision certificates and keys for any number of Istio CAs.
Plug in certificates and key into the cluster
Create a directory for holding certificates and keys:
Generate the root certificate and key:
This will generate the following files:
root-cert.pem
: the generated root certificateroot-key.pem
: the generated root keyroot-ca.conf
: the configuration foropenssl
to generate the root certificateroot-cert.csr
: the generated CSR for the root certificate
Generate an intermediate certificate and key:
This will generate the following files in a directory named
cluster1
:ca-cert.pem
: the generated intermediate certificatesca-key.pem
: the generated intermediate keycert-chain.pem
: the generated certificate chain which is used by istiodroot-cert.pem
: the root certificateintermediate.conf
: the configuration foropenssl
to generate the intermediate certificatecluster-ca.csr
: the generated CSR for the intermediate certificate
If you are doing this on an offline machine, copy the generated directory to a machine with access to the clusters.
Create a secret
cacerts
including all the input filesca-cert.pem
,ca-key.pem
,root-cert.pem
andcert-chain.pem
:Return to the top-level directory of the Istio installation:
Deploy Istio
Deploy Istio using the
demo
profile.Istio’s CA will read certificates and key from the secret-mount files.
Deploying example services
Deploy the
httpbin
andsleep
sample services.Deploy a policy for workloads in the
foo
namespace to only accept mutual TLS traffic.
Verifying the certificates
In this section, we verify that workload certificates are signed by the certificates that we plugged into the CA.
This requires you have openssl
installed on your machine.
Sleep 20 seconds for the mTLS policy to take effect before retrieving the certificate chain of
httpbin
. As the CA certificate used in this example is self-signed, theverify error:num=19:self signed certificate in certificate chain
error returned by the openssl command is expected.Parse the certificates on the certificate chain.
Verify the root certificate is the same as the one specified by the administrator:
Verify the CA certificate is the same as the one specified by the administrator:
Verify the certificate chain from the root certificate to the workload certificate:
Cleanup
Remove the certificates, keys, and intermediate files from your local disk:
Remove the secret
cacerts
, and thefoo
andistio-system
namespaces:To remove the Istio components: follow the uninstall instructions to remove.