![로컬 SSL 연결로 인해 리디렉션 루프가 발생함(Ubuntu 업데이트 후)](https://rvso.com/image/515667/%EB%A1%9C%EC%BB%AC%20SSL%20%EC%97%B0%EA%B2%B0%EB%A1%9C%20%EC%9D%B8%ED%95%B4%20%EB%A6%AC%EB%94%94%EB%A0%89%EC%85%98%20%EB%A3%A8%ED%94%84%EA%B0%80%20%EB%B0%9C%EC%83%9D%ED%95%A8(Ubuntu%20%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8%20%ED%9B%84).png)
최근 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
또한 실행 시 오류나 경고가 발생하지 않는지 확인하십시오.