Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion examples/aws/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -457,6 +457,7 @@ The CF and Diego release repositories provide scripts to generate the necessary
1. To generate certificates for consul, loggregator run:
```bash
cd $DEPLOYMENT_DIR/certs
$CF_RELEASE_DIR/scripts/generate-cf-diego-certs
$CF_RELEASE_DIR/scripts/generate-consul-certs
$CF_RELEASE_DIR/scripts/generate-loggregator-certs
```
Expand All @@ -477,7 +478,7 @@ popd

1. To generate certificates for BBS servers in the Diego deployment, run:
```bash
$DIEGO_RELEASE_DIR/scripts/generate-diego-certs
$DIEGO_RELEASE_DIR/scripts/generate-diego-certs cf-diego-ca $CF_RELEASE_DIR/cf-diego-certs
mv $DIEGO_RELEASE_DIR/diego-certs/* $DEPLOYMENT_DIR/certs
```

Expand Down Expand Up @@ -526,6 +527,7 @@ DEPLOYMENT_DIR/certs

You can ignore any files with a `crl` or `csr` extension.

The certificates in `cf-diego-certs` are used to set SSL properties for the communication between CF and Diego.
The certificates in `consul-certs` are used to set SSL properties for the consul VMs.
The certificates in `loggregator-certs` are used to set SSL properties for the Loggregator subsystem.
The certificates in `uaa-certs` are used to set SSL properties for the UAA subsystem.
Expand Down
4 changes: 4 additions & 0 deletions examples/aws/deploy_aws_environment
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,10 @@ cf_credentials() {
---
cf_credentials:
ssh_host_key_fingerprint: "$(cat keypair/ssh-proxy-host-key-fingerprint)"
cc:
$(block ca_cert certs/cf-diego-certs/cf-diego-ca.crt | indent | indent)
$(block public_cert certs/cf-diego-certs/cloud-controller.crt | indent | indent)
$(block private_key certs/cf-diego-certs/cloud-controller.key | indent | indent)
consul:
$(block ca_cert certs/consul-certs/server-ca.crt | indent | indent)
$(block agent_cert certs/consul-certs/agent.crt | indent | indent)
Expand Down
4 changes: 4 additions & 0 deletions examples/aws/templates/cf/stub-internal.yml
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,10 @@ properties:
droplet_directory_key: (( Resources.Bucket.Droplets ))
buildpacks:
buildpack_directory_key: (( Resources.Bucket.Buildpacks ))
mutual_tls:
ca_cert: (( cf_credentials.cc.ca_cert ))
public_cert: (( cf_credentials.cc.public_cert ))
private_key: (( cf_credentials.cc.private_key ))

ccdb:
address: (( properties.databases.address ))
Expand Down
4 changes: 4 additions & 0 deletions examples/aws/templates/cf/stub.yml
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,10 @@ properties:
droplet_directory_key: (( merge ))
buildpacks:
buildpack_directory_key: (( merge ))
mutual_tls:
ca_cert: (( merge ))
public_cert: (( merge ))
private_key: (( merge ))

loggregator:
tls:
Expand Down
20 changes: 16 additions & 4 deletions scripts/generate-diego-certs
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,23 @@

set -e -x

existing_ca="$1"
existing_depot="$2"

pushd `dirname "$0"`/..
scripts/generate-diego-ca-certs
scripts/generate-bbs-certs diego-ca diego-certs
scripts/generate-rep-certs diego-ca diego-certs
scripts/generate-auctioneer-certs diego-ca diego-certs
if [ -z "$existing_ca" ]; then
scripts/generate-diego-ca-certs
existing_ca=diego-ca
fi

if [ -z "$existing_depot" ]; then
existing_depot=diego-certs
fi

scripts/generate-bbs-certs "$existing_ca" "$existing_depot"
scripts/generate-rep-certs "$existing_ca" "$existing_depot"
scripts/generate-auctioneer-certs "$existing_ca" "$existing_depot"
scripts/generate-tps-certs "$existing_ca" "$existing_depot"
popd

echo "Outputted certs to diego-certs"
40 changes: 40 additions & 0 deletions scripts/generate-tps-certs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#!/bin/bash

set -e -x

usage() {
>&2 echo " Usage:
$0 DIEGO_CA_NAME DIEGO_CA_CERT_DIRECTORY

Ex:
$0 diegoCA ~/workspace/diego-release/diego-certs/
"
exit 1
}

ca_name=$1
ca_cert_directory=$2

if [ -z "${ca_name}" ]; then
>&2 echo "Specify a CA"
usage
fi

if [ ! -d "${ca_cert_directory}" ]; then
>&2 echo "Specify location of CA cert and key"
usage
fi

# Install certstrap
go get -v github.com/square/certstrap

# Place keys and certificates here
output_path="diego-certs/tps-certs"
mkdir -p ${output_path}

client_cn='tps_watcher'
certstrap --depot-path ${ca_cert_directory} request-cert --passphrase '' --common-name $client_cn
certstrap --depot-path ${ca_cert_directory} sign $client_cn --CA $ca_name
mv -f "${ca_cert_directory}/${client_cn}.key" "${output_path}/client.key"
mv -f "${ca_cert_directory}/${client_cn}.csr" "${output_path}/client.csr"
mv -f "${ca_cert_directory}/${client_cn}.crt" "${output_path}/client.crt"