При использовании виртуальных сегментов размещенного стиля с SSL сертификат подстановки SSL сопоставляет только сегменты, не содержащие точек. Чтобы обойти это, используйте HTTP или напишите свою собственную логику проверки сертификата.
Я пытаюсь разместить статические файлы на S3 и получить к ним доступ через https://app.mysite.com/filename.jpg
Кажется, что URL-адреса в стиле виртуального хостинга могут не работать с SSL. Есть идеи, что означает в этом контексте «индивидуальная проверка сертификата»?
Это SSL-сертификат S3:
subject=/C=US/ST=Washington/L=Seattle/O=Amazon.com Inc./CN=*.s3.amazonaws.com
Общее имя в сертификате: *.s3.amazonaws.com
, который не будет соответствовать app.mysite.com
. Поэтому вы не можете использовать свое собственное имя хоста (через запись CNAME) с S3 при использовании HTTPS (по крайней мере, если вы хотите, чтобы он проверялся), поскольку сертификат S3 SSL не включает (и не может) включать ваше имя хоста. Вы должны использовать <bucket>.s3.amazonaws.com
имя хоста вместо этого.
Теперь технически подстановочный знак в имени хоста сертификата SSL соответствует только одной части имени хоста, поэтому вышеуказанный сертификат будет соответствовать foo.s3.amazonaws.com
, но нет foo.bar.s3.amazonaws.com
. Вот почему в документации говорится, что имя сегмента не может содержать точки, поскольку app.mysite.com.s3.amazonaws.com
не будет соответствовать сертификату, но app-mysite.s3.amazonaws.com
воля.
Я предполагаю, что пользовательская проверка сертификата, на которую они ссылаются, - это если вы пишете своего собственного клиента, который обращается к S3, что здесь не так.
редактировать: Как указывает @ceejayoz, вы все равно можете использовать доступ в стиле пути для сегментов с точками в имени, однако вам следует используйте правильное имя хоста для конкретного региона поскольку AWS не может выбрать правильную конечную точку при выполнении запроса DNS.
https://s3-us-west-1.amazonaws.com/app.mysite.com/