Má to řešení v podobě HTTP hlavičky, která řekne klientovi, aby všechny objekty přepsal na HTTPS. To vyřeší třeba problémy v šabloně, která někde může nechat absolutní odkazy na HTTP. Ovšem externí odkazy to řeší jen částečně, protože pokud ten cílový stroj nemá HTTPS, tak to prostě nebude fungovat.
Jinými slovy pokud uživatel vloží do obsahu obrázek z adresy
http://superulozisteobrazku.../neco, tak dostane od tvého serveru příkaz to upravit před načtením na https://. Pokud to super úložiště https nepodporuje, tak se ten obrázek neobjeví. Ale řeší to problém s mixed-content, tedy zámek zůstane zelený a zabrání se načítání nešifrovaného obsahu do stránky.
V konfiguraci Nginx stačí tohle:
add_header Content-Security-Policy upgrade-insecure-requests;