0
votes

I purchased a custom domain mydomain.com w/Google Domains last year. Until earlier this week, I was hosting a small single-page React app on that domain (in a Cloud Storage bucket) that connected to a GAE Flask app backend. Wasn't using SSL anywhere. All was well.

I now wish to use SSL. Since I'm new to all of this stuff, I followed the documentation to map my custom domain and secure it with SSL using Google-managed SSL certs. During this process, I created my first load balancer in GCP, then updated my domain's DNS entries for @ A and www A to the LB's IP. The guides didn't say anything about changing the @ AAAA entries, so I left them in place. Cloud CDN is disabled. Google Domains DNS Settings: Google Domains DNS Settings

When creating the Google-managed SSL cert, I entered both mydomain.com and www.mydomain.com since I want both addresses to be secured w/SSL. After a few hours, the domain status for www.mydomain.com became active, but the status is FAILED_NOT_VISIBLE for mydomain.com. Guessing this is the source of my problems? Google SSL Cert Statuses:

Google SSL Cert Statuses

Troubleshooting tips for this error:

  • The SSL Certificate isn't attached to the load balancer's target proxy. To resolve this issue, update the load balancer configuration. Done, and confirmed via both the GCP UI and the gcloud cli.
  • The domain's DNS record doesn't resolve to the IP address of the Google Cloud load balancer. To resolve this issue, update the DNS records to point to the load balancer's IP address. Thought I did this too, see my GAE custom domain settings below:

App Engine custom domain settings

Attempting to load to mydomain.com or www.mydomain.com in the browser yields:

This site can’t provide a secure connection
www.mydomain.com uses an unsupported protocol.

ERR_SSL_VERSION_OR_CIPHER_MISMATCH

Unsupported protocol
The client and server don't support a common SSL protocol version or cipher suite.

It's been ~40hrs since I created the LB and updated the DNS settings for my domain, so I suspect the issue is my config and not DNS propagation. Where am I going wrong?


EDIT


Editing to clarify a few critical things:

  1. I'm hosting my UI as a static website in a Google Cloud Storage bucket. Cloud Storage doesn't support HTTPS on its own, and therefore requires an HTTPS load balancer to work with custom domains.
  2. If I wanted to go down this path, I'd need to ensure the load balancer pointed to my Cloud Storage bucket, which wasn't mentioned in my original post.
  3. To roll back all changes from this SSL attempt, I'd need to update the @ A DNS entry to the GAE IP, then update the www CNAME entry to c.storage.googleapis.com.. Note this CNAME entry is for Cloud Storage, not for GAE.

I ended up aborting the SSL idea and going with #3 (for now). The app in question is for a personal project that doesn't deal with any sensitive info, so SSL really isn't necessary.

1
1/2) If you are using Google App Engine, why are you configuring a load balancer? You have your IPv4 records pointing to the load balancer front end, but the IPv6 records pointing to App Engine. Unless you plan to use App Engine as a backend for the load balancer, you just need to configure a custom domain in App Engine and point your DNS records to App Engine. cloud.google.com/appengine/docs/standard/python/…John Hanley
2/2) Otherwise delete the custom domain in App Engine and configure a certificate on the Load Balancer front end. cloud.google.com/load-balancing/docs/ssl-certificates/…John Hanley
This is all new to me. I created a load balancer because it was recommended in the documentation. If I don't need one, great! The fewer moving parts, the better. cloud.google.com/load-balancing/docs/ssl-certificates/…brystmar
I updated my domain's DNS settings to match the GAE Custom Domain IPs again. However, I don't see anything under GAE Settings > SSL Certificates, and my only option there is to upload my own cert(s). I'll give the DNS some time to propagate and see if this works.brystmar
If you follow the steps in the link I provided you, Google provisions the SSL certificate for your custom domain(s).John Hanley

1 Answers

-2
votes

You’ve gone through the process and receive the message:

ERR_SSL_VERSION_OR_CIPHER_MISMATCH

I’ve found some information for you. The main points are listed below.

Verify SSL Status of Website,

Check for Certificate Name Not Matching

Verify TLS Version

Verify RC4 Cipher Suite

Manually Inspect Security Certificate

There is more detail in this document here