Why Doesn’t Amazon S3 Transfer Acceleration Accept Bucket Names with Periods (.)?

ferozekhanferozekhan
2 min read

Amazon S3 Transfer Acceleration does not support bucket names that contain a period (.) due to TLS/SSL certificate validation issues.


Here is Why?

  1. S3 Transfer Acceleration Uses CloudFront

    • When you enable S3 Transfer Acceleration, AWS routes requests through Amazon CloudFront edge locations to speed up uploads and downloads.

    • CloudFront requires valid SSL/TLS certificates for HTTPS communication.

  2. Wildcard SSL Certificates Issue

    • AWS uses a wildcard certificate like:

        *.s3-accelerate.amazonaws.com
      
    • If your bucket name contains a period (.), the hostname will look like:

        my.bucket.name.s3-accelerate.amazonaws.com
      
    • SSL certificates treat . as a subdomain separator, so my.bucket.name is interpreted as a multi-level subdomain, breaking the wildcard certificate match.

  3. Result: SSL/TLS Name Mismatch Error

    • If AWS allowed such bucket names, it would lead to TLS/SSL validation errors and connection failures.

Workarounds:

Use bucket names without periods (.) – Example:

mybucketname.s3-accelerate.amazonaws.com

Use virtual-hosted style URLs with custom domains – Example:

  • Set up an S3 bucket with a custom domain and use CloudFront with an ACM certificate.
    Use path-style URLs for direct S3 access (but note that AWS is deprecating them).

Amazon S3 Naming Convention:

Always follow S3 bucket naming best practices:
🚀 Avoid special characters (., _, etc.).
🚀 Use lowercase letters, numbers, and hyphens (-) only.

Happy Learning 😊

0
Subscribe to my newsletter

Read articles from ferozekhan directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

ferozekhan
ferozekhan