SSL certificate for ALB on amazonaws subdomain? - amazon-web-services

I try to configure https on ALB with default amazon subdomain: some-unique-path.elb.amazonaws.com
The problem is that I can't find how to generate the ssl certificate for this domain: Amazon Certificate Manager does not allow to generate certificates for amazonaws subdomains.
Is there any way to make it without buying custom domain and configuring it for ALB?

To use ACM you must have domain which you control. From docs:
Before the Amazon certificate authority (CA) can issue a certificate for your site, AWS Certificate Manager (ACM) must verify that you own or control all of the domain names that you specified in your request.
There are some free domain providers which you could maybe use, but you have to have domain under your control. You can't use some-unique-path.elb.amazonaws.com, because this is AWS-owned domain and you have no rights to it.

Related

Trusted SSL Certificate for Backend Server

I'm creating a simple website. The frontend is stored in S3, and hosted by Cloudfront. I managed to add a trusted SSL certificate to my frontend domain (www.xyz.com) using AWS Certificate Manager.
The backend is running on an EC2 instance. I added a self-signed certificate to it. I'm able to hit the APIs using Postman but the requests from frontend are failing because of the self-signed certificate.
I checked the AWS Certificate Manager again if it could provide me with a cert for my backend server, but it requires a domain. My server is running on an IP and port, and I couldn't find any service that provides a certificate for an IP. I don't want to spend extra money to get a domain for my backend.
So how do I get a trusted SSL certificate for a backend server, running on something like 10.12.12.10:9000?
couldn't find any service that provides a certificate for an IP.
This is because you need domain to obtain valid public certificate. You can't register SSL cert for an IP. But if you already have your own domain www.xyz.com, you can get a certificate for its subdomain, e.g. api.xyz.com.
However, ACM certs can't be used on instances. Thus, you need to get a valid public SSL cert from a third party. A popular choice is https://letsencrypt.org/ with certbot which provides free SSL certificates. By the way, StackOverlow is using letsencrypt for its SSL cert provider, thus its widely used and trusted ssl provider.

How to switch certificates in AWS Certificate Manager?

I am very new to this and struggling to understand AWS.
I had a single domain foo.mydomain.com. This was registered in Route53. And there was a certificate in AWS Certificate Manager that mapped to it.
Now I have two domains foo.mydomain.com & bar.mydomain.com. I have registered the latter in Route53. And I have requrested and received a new certificate from AWS Certificate Manager. This one maps to both domains (via the "additional names" property).
How can I simply disable the old certificate and enable the new certificate?
I want the values for In use? above to be swapped.
You need to go to the services where you are utilizing these certificates (Load Balancers, CloudFront distributions or API Gateways) and change the certificate they are using there.
AWS Certificate Manager manages the SSL/TLS certificates. In general certificates are configured and consumed on the services like ALB (application load balancer), API Gateway, Virtual Machine, Cloudfront etc. If you would like to update the certificate, modify the configuration on one of the above services as applicable in your case. While changing configuration you have to choose the right certificate from ACM. Once update is successful you will see the status in ACM.
Here is an AWS documentation explains how to install/Update SSL Certificates:
https://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-update-certificates.html

AWS api gateway will not allow custom domain name association to certificate

AWS API gateway refuses to allow me to associate a custom domain to a certificate. However, it allowed me to associated the certificate just fine to another domain. The certificate is a wildcard cert. A picture is worth a thousand words:
On April 2019, There is some enhancement for CloudFront about the security for adding alternate domain names to a distribution.
It seems that the self-signed certificate is not allowed after the enhancement.
Amazon CloudFront enhances the security for adding alternate domain names to a distribution
The certificate must be valid and come from a publicly trusted Certificate Authority like AWS Certificate Manager which provides public SSL/TLS certificates for free.

Using AWS Certificate with a parked domain for a shopify store

I brought a domain (not in AWS) and parked it on AWS. I also got a certificate in AWS Certificate manager, for a domain I use for a shopify store.
On the shopify admin, I see that SSL isn't available for the purchased domain.
Is there a way to connect the domain with the certificate if the server is actually on shopify ?
ACM certificates are only for use with CloudFront and Elastic Load Balancers. You could possibly setup a CloudFront distribution in front of your Shopify domain in order to use the certificate that way, but it's probably more trouble and expense than it is worth.
You might look at moving your DNS hosting to CloudFlare and using their free SSL service.
The SSL certificate generated from ACM are only for use into AWS service who you cannot move move that certificate to a Shophify server. Please refer this.
https://aws.amazon.com/certificate-manager/faqs/

Does AWS give you a default ssl cert on their amazonaws.com subdomains like GAE and appspot.com?

When I deploy apps on Google App Engine, they automatically get use of the appspot.com wildcard SSL cert allowing me to have https secure URLs.
Does AWS give you this option, or is installing your own SSL cert the only option?
Amazon only provides free SSL certs through the ACM service, which is currently restricted to CloudFront distributions and Elastic Load Balancers that you have configured with your own custom domain name.
There are other ways to obtain a free SSL cert if you own your own domain name, such as CloudFlare and Let's Encrypt.