I want to create an S3 bucket in the Frankfurt zone, and make the files accessible with the URL: https://files.stample.co/filename
So I want both HTTPS, and a custom DNS alias (CNAME) at the same time.
According to what I understand, Amazon has a wildcard certificate for URL https://*.s3.amazonaws.com
.
HTTPS / SSL
So this wildcard will:
- Work for
https://stample-files.s3.amazonaws.com
- Not work for
https://files.stample.co.s3.amazonaws.com
So what I understand and confirmed by other StackOverflow posts is that if I want SSL to work I have to use a bucket name with no dot otherwise the Amazon certificat with wildcard won't match the bucket domain.
Using DNS alias / CNAME
On this S3 documentation, under Customizing Amazon S3 URLs with CNAMEs
section:
Depending on your needs, you might not want "s3.amazonaws.com" to appear on your website or service. For example, if you host your website images on Amazon S3, you might prefer http://images.johnsmith.net/ instead of http://johnsmith-images.s3.amazonaws.com/.
The bucket name must be the same as the CNAME. So http://images.johnsmith.net/filename would be the same as http://images.johnsmith.net.s3.amazonaws.com/filename if a CNAME were created to map images.johnsmith.net to images.johnsmith.net.s3.amazonaws.com.
This seems to be for technical reasons because otherwise Amazon can't know the bucket we try to target:
Because Amazon S3 sees only the original host name www.example.com and is unaware of the CNAME mapping used to resolve the request, the CNAME and the bucket name must be the same.
So what I understand here is that for CNAME to work, we have to use dots in the bucketname.
Both together ?
If I use dots in bucket name:
- SSL won't work
- CNAME will work
If I don't use dots in bucket name:
- SSL will work
- CNAME won't work
I've tested both cases and could not make SSL and CNAME work fine together.
What can I do to make both work? It seems to me that what I want to achieve is not very fancy...