HTTPS for Canonical URL

Ghost Version 3.17.1

In Config.production.json we have set the URL to Https://x.x.x.x/blog/;

In our Main Nginx server we have added proxy pass
location /blog {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://Private-IP-of-Ghost-Instance/blog;
}

Still the source page shows the Canonical URL http://x.x.x.x/blog/

I think you answered your own question

In Config.production.json we have set the URL to Https://x.x.x.x/blog/;

Still the source page shows the Canonical URL http://x.x.x.x/blog/

I have set the Config.production.json URL to Https, But still the Canonical URL is showing http.

It sounds like you haven’t configured Ghost correctly using Ghost-CLI, I would suggest you review the setup guide, and Ghost-CLI documentation for available commands: