В зависимости от веб-сервера директива error_log
(nginx / apache / apache2) и место, в котором регистрируются ошибки, помогут вам понять, где происходит проблема.404 указывает, что файл не существует или неправильно установлены разрешения для его обслуживания веб-сервером.Поскольку это происходит только с HTTPS, скорее всего, как предложено hakre , ваш сервер HTTPS может не использовать тот же корень документа, что и HTTP.
Публикация информации о типе веб-сервера, которая, если что-нибудь отобразится в журналах ошибок, поможет всем на stackoverflow.com лучше понять вашупроблема, и предложить соответствующий ответ.
Виртуальный хостинг на основе имени не будет работать должным образом с HTTPS.У вас может быть 1 виртуальный хост на 1 IP-адрес с HTTPS: http://wiki.apache.org/httpd/NameBasedSSLVHosts
Как правило, невозможно разместить более одного виртуального хоста SSL на одном IP-адресе и порте.Это связано с тем, что Apache необходимо знать имя хоста, чтобы выбрать правильный сертификат для настройки уровня шифрования.Но имя запрашиваемого хоста содержится только в заголовках HTTP-запроса, которые являются частью зашифрованного содержимого.Поэтому он недоступен до тех пор, пока шифрование уже не согласовано.Это означает, что правильный сертификат не может быть выбран, и клиенты будут получать предупреждения о несоответствии сертификатов и будут уязвимы для атак типа «злоумышленник в середине».
В действительности Apache позволит вам настроить виртуальный SSL на основе именихосты, но он всегда будет использовать конфигурацию первого виртуального хоста в списке (для выбранного IP-адреса и порта) для настройки уровня шифрования.В определенных конкретных случаях допустимо использовать одну конфигурацию SSL для нескольких виртуальных хостов.В частности, это будет работать, если сертификат SSL применяется ко всем виртуальным хостам.