According to documentation, get_stylesheet_directory_uri()
should check for SSL while retrieving the theme directory url.
Try exchanging <link rel="shortcut icon" href="https://wordpress.stackexchange.com/questions/307203/<?php bloginfo("template_directory'); ?>/icons/favicon.ico">
to <link rel="shortcut icon" href="https://wordpress.stackexchange.com/questions/307203/<?php echo get_stylesheet_directory_uri(); ?>/icons/favicon.ico">
in your header.php file.