로컬 SSL 연결로 인해 리디렉션 루프가 발생함(Ubuntu 업데이트 후)

로컬 SSL 연결로 인해 리디렉션 루프가 발생함(Ubuntu 업데이트 후)

최근 Ubuntu 업데이트 이후 내 로컬 웹사이트는 더 이상 SSL을 통해 페이지를 제공하지 않습니다. 예를 들어 내 .htaccess 파일은 /sign-in이 항상 HTTPS를 통해 제공되도록 시도합니다.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} /sign-in
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,QSA,R=301]

그러나 site2-local 도메인에서 /sign-in을 요청하면 다음과 같은 "페이지가 제대로 리디렉션되지 않습니다"라는 오류가 표시됩니다./var/log/apache2/error.log

[Tue Jun 08 12:20:57 2010] [info] [client 127.0.1.1] Connection to child 0 established (server site1-local:443)
[Tue Jun 08 12:20:57 2010] [info] Seeding PRNG with 656 bytes of entropy
[Tue Jun 08 12:20:57 2010] [info] Initial (No.1) HTTPS request received for child 0 (server site2-local:443)
[Tue Jun 08 12:20:57 2010] [info] Subsequent (No.2) HTTPS request received for child 0 (server site2-local:443)
[Tue Jun 08 12:20:57 2010] [info] Subsequent (No.3) HTTPS request received for child 0 (server site2-local:443)
[Tue Jun 08 12:20:57 2010] [info] Subsequent (No.4) HTTPS request received for child 0 (server site2-local:443)
[Tue Jun 08 12:20:57 2010] [info] Subsequent (No.5) HTTPS request received for child 0 (server site2-local:443)
[Tue Jun 08 12:20:57 2010] [info] Subsequent (No.6) HTTPS request received for child 0 (server site2-local:443)
[Tue Jun 08 12:20:57 2010] [info] Subsequent (No.7) HTTPS request received for child 0 (server site2-local:443)
[Tue Jun 08 12:20:57 2010] [info] Subsequent (No.8) HTTPS request received for child 0 (server site2-local:443)
[Tue Jun 08 12:20:57 2010] [info] Subsequent (No.9) HTTPS request received for child 0 (server site2-local:443)
[Tue Jun 08 12:20:57 2010] [info] Subsequent (No.10) HTTPS request received for child 0 (server site2-local:443)
[Tue Jun 08 12:21:12 2010] [info] [client 127.0.1.1] (70007)The timeout specified has expired: SSL input filter read failed.
[Tue Jun 08 12:21:12 2010] [info] [client 127.0.1.1] Connection closed to child 0 with standard shutdown (server site2-local:443)

site1-local(인증서를 공유하는 내 컴퓨터의 다른 사이트)에 대한 연결이 있는데 이해할 수 없습니다.

이 문제의 원인이 무엇인지 아는 사람이 있나요?

답변1

문제의 원인이 무엇인지는 모르겠지만 얼마 전에 직접 문제를 겪어 https 요청을 감지하기 위해 다른 변수를 사용하는 해결 방법을 찾았습니다.

%{SERVER_PORT}또는 중 하나를 사용할 수 있습니다 %{SERVER_PROTOCOL}.

또한 대문자 사용 문제일 수도 있습니다. %{HTTPS}"꺼짐"이 아니라 "꺼짐"일 수도 있습니다.

내 SSL VirtualHosts에는 SetEnv HTTPS on내가 겪었던 다른 문제에 대한 솔루션이 있지만 귀하의 문제도 해결해야 합니다. 이 솔루션이 필요한 궁극적인 원인은 %{HTTPS}변수가 올바르게 설정되지 않았기 때문입니다. 변수가 설정되지 않은 경우 %{HTTPS}수동으로 설정하면 문제가 해결됩니다.

답변2

SSL이 켜져 있지 않으면 HTTPS가 항상 설정되지 않을 수도 있다고 생각합니다. 따라서 포트를 테스트하는 것은 실제로 좋은 해결책이 될 것입니다(%{SERVER_PORT})

답변3

먼저 Apache가 https 포트에서 수신 대기하는지 확인하십시오. lsof -i:443출력을 찾지 못한 경우 다시 쓰기 규칙이 아닌 SSL 모듈에 문제가 있는 것입니다. 특히 업그레이드 전에 동일한 규칙이 올바르게 작동했다고 말했기 때문입니다.

apache2ctl -t또한 실행 시 오류나 경고가 발생하지 않는지 확인하십시오.

관련 정보