Назад | Перейти на главную страницу

Как можно написать собственную логику проверки сертификата на Amazon S3?

Из руководство разработчика:

При использовании виртуальных сегментов размещенного стиля с SSL сертификат подстановки SSL сопоставляет только сегменты, не содержащие точек. Чтобы обойти это, используйте HTTP или напишите свою собственную логику проверки сертификата.

Я пытаюсь разместить статические файлы на S3 и получить к ним доступ через https://app.mysite.com/filename.jpg

Кажется, что URL-адреса в стиле виртуального хостинга могут не работать с SSL. Есть идеи, что означает в этом контексте «индивидуальная проверка сертификата»?

См. Также Stack Overflow.

Это 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/