curl: (35) gnutls_handshake() failed: Certificate is bad
2021/05/21 21:21:21 http: TLS handshake error from 10.10.10.10:57962: tls: client didn't provide a certificate
# Replace <CONCOURSE MANIFEST> with the path to manifest file: bosh interpolate <CONCOURSE MANIFEST> --path=/instance_groups/name=web/jobs/name=web/properties/tls/cert ca: | -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- certificate: | -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- private_key: | -----BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY----- Succeeded
bosh interpolate <CONCOURSE MANIFEST> --path=/instance_groups/name=web/jobs/name=web/properties/tls/cert ((atc_tls)) Succeeded
--- instance_groups: - azs: - AZ-1 - AZ-2 - AZ-3 instances: 1 jobs: - name: bpm release: bpm - name: web properties: add_local_users: - [REDACT]:[REDACT] auth_duration: 72h bpm: enabled: true build_log_retention: default_builds: 200 maximum_builds: 250 build_tracker_interval: 60s cluster_name: Example Cluster ... tls: bind_port: 443 cert: ca: | -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- certificate: | -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- private_key: | -----BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY----- token_signing_key: ...
Scenario 2: The Concourse manifest has the properties.tls.cert field set to something similar to ((atc_tls))
In this scenario, this field of the manifest must be updated to explicitly declare the use of the certificate and private key in order to prevent the CA certificate from being added. Please update this field to look similar to the following:
tls: bind_port: 443 cert: certificate: ((atc_tls.certificate)) private_key: ((atc_tls.private_key))
Scenario 3: Concourse is being deployed using BOSH operations files to enable TLS
It is a common practice to deploy Concourse using the operations files from the Concourse BOSH Deployment, which are located in the cluster/operations directory of the downloadable package. Starting with v7.3.0 of the Concourse BOSH Deployment, the tls.yml file was updated such that mTLS would not be mistakenly enabled when trying to enable TLS.
When upgrading Concourse using these operations files, it is important to make sure that the operations files being used are for the appropriate version of Concourse.