CloudFront would be the best option, since as well as providing the requirement (HTTPS on custom domain name) it will also provide added benefits of lower latency and lower costs (assuming that the clients for the website are outside the AWS region that the bucket it located).
This is a common usecase for CloudFront. CloudFront supports custom CNAMEs and certificates (either through ACM or third-party provided certificates) and using S3 as an origin - either via its website endpoint or directly using the S3 API endpoint.
HTTPS/TLS + static S3 websitesAccepted Answerasked 2 years ago
Simplest and tightest way to secure S3 buckets for static websitesasked 3 years ago
Bug: S3 bucket static website hosting requires an index document value, even if it's just one space (when set in the management console)asked a month ago
OAI or not OAI for serving a static website in S3 using CloudFrontasked 8 months ago
Blue Green with Static S3 WebsiteAccepted AnswerMODERATORasked 3 years ago
S3 static website domain not workingasked 5 months ago
CloudFront + S3 static website hosting, issues with contact form submissionasked 6 months ago
Deploying a static website on S3 but using domain name from 123Regasked 6 months ago
S3 Static Website RoutingRules when using Cloudfront and a domain nameasked 3 years ago
Is it possible to map an S3 static website to a public static IP address?Accepted Answerasked 2 years ago