If your entire installation is configured for https and http requests are totally undesirable, add the following lines to your WordPress .htaccess file:
# **************************************************************************
# Redirect HTTP to HTTPS
# **************************************************************************
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} ^(.*)$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=temporary,L]
The code above will redirect all HTTP requests to their equivalents in HTTPS protocol. This way, WordPress will never produce any insecure page and, as a consequence, W3 Total Cache will not put in its cache this sort of page.
By the way: the use of “temporary” instead of “permanent” in the code is proposital: it aims to avoid a terrible problem involving browser caches when, for any reason, you have to return to http requests (an expired certificate, etc.)