API Gateway REST API stages should be configured to use SSL certificates for backend authentication
Checks that the REST API stage has a client certificate, which API Gateway presents on calls to HTTP integrations so the backend can verify they come from API Gateway. Only the stage setting is read: it protects nothing until the backend requests and verifies the certificate.
- service
- APIGateway
- severity
- Medium
- scope
- evaluated in every region
How to fix it
- Can break clients: Some backend servers do not support API Gateway's SSL client authentication and answer with a certificate error, so test the integration before switching production.
In the console
API Gateway → APIs → the REST API → Stages → the stage → Stage details
- Client certificates
- A certificate made with Generate certificate, or an imported or private ACM certificate
- Client certificate
- That certificate; a generated one is valid for 365 days, so rotate it before it expires
With the AWS CLI
aws apigateway update-stage --rest-api-id <rest-api-id> --stage-name <stage-name> --patch-operations op=replace,path=/clientCertificateId,value=<client-certificate-id>With Terraform
resource "aws_api_gateway_stage" "this" {
rest_api_id = var.rest_api_id
stage_name = var.stage_name
deployment_id = var.deployment_id
client_certificate_id = aws_api_gateway_client_certificate.this.id
}
See which of your accounts this check is failing on.
Book a live scan