Store Certificates in AWS
Follow these steps to store your certificate and private keys in AWS that can be used by CloudGuard WAF to process HTTPS traffic
Note About Certificate Renewal
When a certificate is renewed, you must update the certificate manager according to the instructions below, then enforce policy again (even if configuration has not changed) by clicking on "Enforce" on the top bar of the web administration application for CloudGuard WAF in the portal, or by using management API.
Certificates Usage
In order to use encrypted traffic (HTTPS) a managed reverse proxy must have access to the relevant certificates of the domains and URLs it exposes.
Example - you have two applications and one API endpoint to protect:
www.acme.com
www.acme.com/sales
products.acme.com/catalog
Examples | Certificates used | Required action |
---|---|---|
Case 1 | You have one wildcard certificate for *.acme.com | Place the certificate in the desired certificate storage by following the instructions below. CloudGuard WAF will use it for all relevant applications |
Case 2 | You have two certificates: (1) for www.acme.com and (2) for products.acme.com | Place both certificates in the desired certificate storage by following the instructions below. CloudGuard WAF will automatically use certificate 1 for the first two Applications/APIs and certificate 2 for the last Application |
Setting a certificate in AWS certificate manager
Step 1: AWS Console
Log in to AWS Console and select the relevant Region.
Step 2: AWS Certificate Manager
Navigate to the AWS Certificate Manager (ACM) and import a PEM-encoded certificate and private key.
The certificate must be imported from a different certificate provider and only hosted by the ACM.
Creation of the certificate via the ACM is not supported as this prevents access to the private key required in the next step.
Step 3: Prepare your private key for storage in AWS Secrets Manager
Encode your private key into base64 using this command (Linux or Mac):
openssl base64 -A -in <path to private key> -out <output file>
You will need the output of the command in Step 4.
Step 4: Store your private key as a secret
Navigate to AWS Secrets Manager and click Store a new secret:
Choose Other types of secret, and add a new secret key-value pair:
In the key cell enter: private key
In the value cell enter your private key as a base64 encoded single string (the output of the openssl command above).
Set the Encryption key to: aws/secretmanager
Click Next
It is recommended to copy the base64 encoded key into a text editor and then to the Secrets Manager to make sure it is copied correctly. Sometimes, copying directly from a terminal is not working well.
Step 5: Secret Name and Tags
Enter the name of your secret in the secret name field
In the Tags section, add Key-Value Pair:
In the key cell enter: certificate
In the value cell enter the Amazon Resource Name (ARN) of the matching certificate that you placed in the AWS Certificate Manager (step 4 above).
Repeat the above steps for each additional private key you have. You must store each private key as a separate secret.
Step 6: Launch CloudFormation Stack
To launch the CloudFormation Stack, select the acknowledgement check boxes and click Create stack.
The CloudFormation template allows you to input only two certificates and private keys. After the stack launches for additional certificates, go to the created IAM Role and edit the GetCertificatesPolicy and GetSecretsPolicy with the additional ARNs, after you repeat Steps 1-5.
Step 7: Enforce CloudGuard WAF Policy
Open CloudGuard WAF Web Interface in your browser and click the Enforce button at the top bar. This will signal the Gateways to read the certificates from AWS.
Last updated