Мне удалось решить эту проблему, оказалось, что я пропустил еще одну ошибку, возвращенную Cloudfront: 502 Bad Gateway .Несмотря на то, что Chrome покажет вышеупомянутую ошибку «Доступ к XMLHttpRequest ...».Это было вызвано неправильной настройкой DNS и SSL-сертификатов из-за моей неопытности.
Я постараюсь ответить на свой вопрос, поскольку после нескольких часов поиска не было прямого ответа относительно (Cloudfront, EC2 иHTTPS) в Stackoverflow, и есть много оставшихся без ответа вопросов.
Цель, которую пыталась достичь моя группа, - включить подключение HTTPS для всей установки: браузеры пользователей, распределение Cloudfront и мой экземпляр EC2.
Что я сделал, чтобы исправить это:
- Сгенерировал бесплатный сертификат SSL (например, Let's Encrypt) для использования для экземпляра EC2 с использованием субдомена (например, ec2.example)..com или подстановочный знак * .example.com).* Примечание: ACM не позволяет экспортировать публичные сертификаты SSL, которые могут использоваться в экземплярах EC2, поэтому используйте другие бесплатные онлайн-сервисы SSL.Не используйте самозаверяющие сертификаты.
- Импортируйте этот сертификат в ACM, чтобы позже использовать его и для Cloudfront.
- Создана новая запись DNS A для сопоставления субдомена с экземпляром EC2.(например, ec2.example.com до ec2-xx-xxx-xx.ap1-location.amazonaws)
- Создание нового дистрибутива Cloudfront и установка источника в качестве субдомена ec2.example.com.Кроме того, в разделе «Кэш на основе выбранных заголовков запроса» установите для него значение «Белый список» и переадресацию заголовков «Источник».Для SSL-сертификата в Cloudfront используйте обратно тот, который был сгенерирован на шаге 1)
- Создан новый DNS-A-запись и сопоставьте поддомен «api» с Cloudfront.(например, api.example.com до abcdxyz.cloudfront.net)
- Теперь я могу использовать субдомен (api.example.com) для связи с Cloudfront, который по очередивозвращается к моему EC2 и выполняет кэширование, используя HTTPS все время.
Ссылочные ссылки: link1 , link2
Возможно, естьлучший способ установить это, и если так, пожалуйста, поправьте меня, чтобы я тоже мог улучшиться!Надеюсь, этот ответ поможет кому-то новому, как я, и в будущем.Спасибо!