When you configure Ghost to use an SSL url, you need to make sure nginx is configured to tell ghost it terminated the SSL connection. It sounds like you’re using a custom nginx configuration - can you check that the nginx rules in the template are present in your /blog nginx config?
How does Nginx tell Ghost that it terminated the SSL connection? I can set new headers as you can see in Netlify redirects but I still couldn’t figure out how to do it without using Nginx.
I have the same setup: ghost not using HTTPS. But HTTPS really is a requirement nowadays, especially with chrome not serving or complaining about http.
So I use cloudflare to do SSL offloading. Setup a free cloudflare account, configure DNS, then have cloudflare provide HTTPS, but connect http only to your blog.
Do you mind sharing the blog url with me? If you’re using HTTP in Ghost setting called url, that’s also not optimal since in HTML source Ghost will use HTTP canonical links.
I use docker, so when I start the container, I specify url as http, like this:
docker run -d --name ghost-v2.1.3-1 -p 4431:2368 --restart always -v /home/yusufm/gitwork/ghost-data-v1:/var/lib/ghost/content -e url=Hacksaw - The Blog ghost:2.1.3
That will expose everything as HTTP, so you dont need to worry about certs and SSL.
Then setup your domains on CloudFlare, and under crypto, set:
SSL: Flexible
Always use HTTPS: On
Hey there, I have looked into your blog but it looks like the canonical links are still pointing to the HTTP. I started to believe that the maintainers intentionally made it hard to maintain your own Ghost instance. Even though the software itself is cool, they don’t support Docker officially, it doesn’t play well with Heroku or any system other than custom Nginx. All that makes sense since they want to monetize their software and make money from their managed solution. However; I can’t afford $200 plan and I don’t think it’s worth that much.