2021 Fillmore Street #1128

}

24/7 solutions

AWS SSL Certificates for Elastic Beanstalk

AWS SSL Certificates for Elastic Beanstalk are a pain to configure so I put together the following.

SSL certificates for your vanity domain will work correctly as long as users access your Elastic Beanstalk environment through your vanity domain name.
Certs are not packaged with the war file, but are specified as part of the environment configuration. A procedure for using SSL with Elastic Beanstalk is:
1. Obtain an SSL certificate, either by purchasing one from a certificate vendor or generating a self-signed certificate using a tool such as openssl. To proceed, you’ll need your private key, certificate, and certificate trust chain (if the cert is self-signed).
The best documentation I found for this is here.
2. Download the IAM command-line tools from here and install them on your development machine.
The IAM command-line tool can be found here.

3. Execute iam-servercertupload with the certificate you wish to use. The result of this command will give you an IAM ARN for your certificate.
This command can be tricky. The following will work. You will need to replace your parameters accordingly.

1
iam-servercertupload -b APP.MOBILEAWS.COM.crt -c network_first_add_trust_second_carriage_return.pem -k private-key.pem -s mobileaws_cert_chain_2013 -v

The -b argument will be the Cert that the certicate vendor gives you back.
The -c argument will need to be a concatenation of the other 2 certs that the certificate vendor gives you back.
The -k will need to be the private key that you used to generate the CSR.

4. Go to the AWS Elastic Beanstalk console to enable SSL support. Select a running environment and under Actions -> Edit Config -> Load Balancers, you can set the HTTPS port to either 443 or 8443 and then fill in the SSL Certificate Id with the ARN from the command executed above.
When you run the iam-servercertupload command you will get a bunch of mumbo jumbo back.
What you want is
arn:aws:iam::390195603535:server-certificate/mobileaws_cert_chain_2013
If you fail to copy this out, you can always do

1
iam-servercertgetattributes -s certificate_object_name

This will return something along the lines of
arn:aws:iam::390195603535:server-certificate/mobileaws_cert_chain
ASCAI27AVTTBDM5RKNNY2

Once your configuration deployment finishes, you will have an AWS Elastic Beanstalk Environment whose ELB is using server-side HTTPS.

Related Articles

AWS Free Tier

AWS Free Tier

Understandably, making the jump to the AWS cloud is not an easy investment to evaluate, especially from the perspective of a startup. Fortunately, AWS is generous enough to provide some hands-on experience with its various tools and utilities free of charge for either a short period of time or indefinitely depending on the service type. Here’s a rundown of everything you can expect from AWS’ Free Tier.

AWS Beginner Guide

AWS Beginner Guide

AWS (Amazon Web Services) is the current largest provider in Infrastructure as a Service (IaaS) and Platform as a Service (PaaS) for everything from databases to extra computing power. It provides solutions for whatever problems are brought by clients and it allows for ease of scalability so that users will only pay for what they need and use; especially during times of expected lower traffic.

How to Migrate an On-Premises Database to AWS

How to Migrate an On-Premises Database to AWS

The AWS Database Migration Service (AWS DMS) assists you in performing a safe and speedy migration of databases to AWS. The source database continues to function normally throughout the migration, hence reducing the amount of downtime experienced by applications that are dependent on the database. Data can be moved to or from the most popular commercial and open-source databases with the help of the AWS Database Migration Service.

Download our 10-Step Cloud Migration ChecklistYou'll get direct access to our full-length guide on Google Docs. From here, you will be able to make a copy, download the content, and share it with your team.