설정 config.force_ssl에는 ActionDispatch::SSL. ActionDispatch::SSL(강조는 명확성을 위해 추가 된) 다음 문서는 기능을 설명 :
여기 에 포함 된 내용 과 여기 에서 ActionDispatch :: SSL 문서를 참조 하십시오 .
문서
이 미들웨어는 때 스택에 추가되고에서 config.force_ssl = true설정된 옵션을 전달합니다 config.ssl_options. 보안 HTTP 요청을 시행하기 위해 세 가지 작업을 수행합니다.
TLS 리디렉션 :
동일한 URL 호스트, 경로 등을 사용하여 http : // 요청을 https : // 로 영구적으로 리디렉션 합니다. 기본적으로 활성화됩니다. config.ssl_options
도착 URL (예 :) 을 수정하도록 redirect: { host: "secure.widgets.com", port: 8080 }설정 redirect: false하거나이 기능을 사용하지 않도록 설정
합니다.
보안 쿠키 : 쿠키 에 secure플래그를 설정하여 브라우저에 http : // 요청과 함께 전송해서는 안됩니다. 기본적으로 활성화됩니다. 설정
config.ssl_options으로하면 secure_cookies: false이 기능을 비활성화합니다.
HSTS (HTTP Strict Transport Security) : 이 사이트를 TLS 전용으로 기억하고 비 TLS 요청을 자동으로 리디렉션하도록 브라우저에 지시합니다 . 기본적으로 활성화됩니다. 구성 config.ssl_options에 hsts: false사용하지 않으려면. 설정 config.ssl_options과 hsts: { … }구성 HSTS에 :
expires:이 설정이 유지되는 시간 (초)입니다. 기본값은
180.days(권장)입니다. 브라우저 사전로드 목록을 인증하는 데 필요한 최소값은 18.weeks입니다.
subdomains: true이 설정을 모든 하위 도메인에 적용하도록 브라우저에 지시하려면로 설정합니다. 이렇게하면 하위 도메인의 취약한 사이트가 쿠키를 가로채는 것을 방지 할 수 있습니다. 기본값은 true.
preload:이 사이트가 브라우저의 사전로드 된 HSTS 목록에 포함될 수 있다고 광고합니다. HSTS 는 아직 HSTS 헤더를 보지 못했기 때문에 첫 방문을 제외한 모든 방문에서 사이트를 보호합니다 . 이러한 격차를 줄이기 위해 브라우저 공급 업체는 HSTS 지원 사이트의 기본 목록을 포함합니다. 포함 할 사이트를 제출 하려면 https://hstspreload.appspot.com 으로 이동 하세요 . HSTS를 끄려면 헤더를 생략하는 것만으로는 충분하지 않습니다. 브라우저는 만료 될 때까지 원래 HSTS 지시문을 기억합니다. 대신 헤더를 사용하여 브라우저에 HSTS를 즉시 만료하도록 지시하십시오. 설정 hsts: false은의 바로 가기입니다 hsts: { expires: 0 }.
요청은 다음을 사용하여 리디렉션을 거부 할 수 있습니다 exclude.
config.ssl_options = { redirect: { exclude: -> request { request.path =~ /healthcheck/ } } }