Мои настройки выглядят следующим образом: CDN CloudFront только с https и http-только для Instnace EC2 Instnace (все запросы, сделанные к CloudFront, являются https, все запросы от CloudFront к ec2 - http)
Если я установилбезопасное значение true в моих приложениях, сеансы и файлы cookie больше не сохраняются ни в одном браузере .Если я установлю значение false , оно будет работать в большинстве браузеров, но не работает в Safari .
Rails.application.config.session_store :cookie_store, key: '_K_session', secure: true
Моя цель - заставить сеанс работать для всехбраузеры.Мне действительно не нужна настройка безопасного сеанса.
Вот моя упрощенная настройка Terraform:
resource "aws_cloudfront_distribution" "main_rails_app" {
origin {
domain_name = "${aws_elastic_beanstalk_environment.main_rails_app.cname}"
origin_id = "${var.cf_main_rails_app_origin_id}"
custom_origin_config {
http_port = "80"
https_port = "443"
origin_protocol_policy = "http-only"
origin_ssl_protocols = ["TLSv1.1"]
}
}
default_cache_behavior {
allowed_methods = ["DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT"]
cached_methods = ["GET", "HEAD", "OPTIONS"]
target_origin_id = "${var.cf_main_rails_app_origin_id}"
forwarded_values {
query_string = true
headers = ["*"]
cookies {
forward = "all"
}
}
min_ttl = 0
default_ttl = 0
max_ttl = 0
compress = true
viewer_protocol_policy = "redirect-to-https"
}
viewer_certificate {
# cloudfront_default_certificate = true
acm_certificate_arn = "${data.aws_acm_certificate.some_domain.arn}"
minimum_protocol_version = "TLSv1.1_2016"
ssl_support_method = "sni-only"
}
restrictions {
geo_restriction {
restriction_type = "none"
}
}
}