Search code examples
amazon-web-servicessslamazon-elastic-beanstalkaws-certificate-manager

Request a certificate in ACM for Elastic Beanstalk backend


I've just started using AWS a week ago. I deployed my NodeJS backend in a Docker container via Elastic Beanstalk. And a front-end Angular5 app in an S3 via CloudFront.

I bought a domain name on GoDaddy and configured it to point to my CloudFront Angular5 app. I also generated an SSL certificate for that domain (used for the front-end). However, all requests from the frontend app are getting blocked due to the backend insecurity.

So, as I understand, the next step would be to configure HTTPS for the ElasticBeanstalk NodeJS backend.

I found a variety of articles on that topic. But all of them assume I already have a certificate issued.

The problem is that when I tried to request a certificate via ACM for the URL that Elastic Beanstalk gives me (my-website.eu-west-2.elasticbeanstalk.com), the request got rejected with the following Error:

Request failed The status of this certificate request is "Failed". Additional verification required to request certificates for one or more domain names in this request.

What can I do in that case? And is it even possible to use aws-provided URLs (like the one provided by elastic beanstalk) to request SSL certificates?

Apologies if my terminology is not very correct. I'm quite new to all this stuff.


Solution

  • You cannot register SSL certificates for Amazon domains (amazonaws.com, elasticbeanstalk.com, etc.)

    If you want to use HTTPS for your Elastic Beanstalk application (internal or external), you must use your own domain.

    1. Register a domain with a DNS registrar.
    2. Request an SSL certificate via ACM for that domain.
    3. Assign that ACM certificate to your Elastic Beanstalk application.
    4. Point your domain to the Elastic Beanstalk application, CNAME for external DNS, CNAME or ALIAS for Route 53.
    5. Access the EB application via your domain name, and NOT the elasticbeanstalk-assigned address.