IE9 및 아파치 SSL nokeepalive 설정


8

현재 PHP 응용 프로그램 (5.3.7에서 실행되는 PHP)에 Apache 2.2.3 및 CentOS 5.4를 사용하고 있으며 응용 프로그램이 HTTPS 및 루트 CA 인증서로 실행 중입니다.

문제는 IE9 (IE9에만 해당)와 관련하여 이상한 문제가 발생한 것입니다. IE9 브라우저가 서버에 HTTPS 요청을 제출할 때 HTTPS 응답이없는 경우가 있습니다. 내가 주목 한 것은 IE9가 페이지를 새로 고칩니다. 보다 구체적으로, 언급 된 페이지는 로그인 페이지입니다. 따라서 사용자 이름과 비밀번호를 입력하고 양식을 제출하면 응답이 없으며 IE9는 동일한 로그인 페이지를 다시로드하는 것처럼 보입니다. (빈 사용자 이름과 비밀번호로)

응용 프로그램 수준에서 추적 할 때 사용자 이름과 암호를 받았으며 응용 프로그램이 오류없이 종료되었습니다.

주된 두통은 매번 재현 할 수 없다는 것입니다. 때때로 우리는 아무런 문제없이 로그인 할 수 있지만 때로는 위에서 언급 한 문제가있을 것입니다.

이제 우리 회사에는 네트워크 팀, 개발자 및 기타 팀이 있습니다. 우리 아파치는로드 밸런서에서 실행 중입니다. 네트워크 담당자는 설정을 변경하지 않는다고 주장하지만 유일한 변경 사항은 응용 프로그램입니다. 그러나 개발자의 관점에서 변경 사항은 로그인 프로세스와 아무런 관련이 없습니다.

내 관점에서 사용자가 제출을 클릭하면 HTML (HTTPS 응답)을 보내어 응용 프로그램 (apache)이 수행 한 것처럼 보이지만 HTML은 네트워크에서 기적적으로 사라졌습니다. connection keep-alive와 관련이 있다고 생각합니까? 아마도 IE9 브라우저 에이전트는 다르게 처리하며 어떻게 든 연결이 실패한 것으로 간주하고 다시 시도하기 위해 페이지를 다시로드합니까?

그러나 어쨌든 SSL conncetion에 대한 Apache의 다음 설정을 발견했습니다.

SetEnvIf 사용자 에이전트 ". MSIE. "\ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0

IE9 이상을 제외하도록 어떻게 설정할 수 있는지 잘 모르시겠습니까? 검색 할 때 위의 설정은 IE가 Apache와 연결될 때 오랜 문제를 해결하는 것입니다. 그러나 IE9는 완전히 새로운 것이므로 아마도 문제가 이미 해결되었으며 설정을 업데이트해야합니까?

누군가가 이것에 약간의 빛을 비출 수 있기를 바랍니다 ..



blogs.msdn.com/b/ieinternals/archive/2011/03/26/… BrowserMatch ". * MSIE [2-5] \ .. *"\ nokeepalive ssl-unclean 로의 변경을 제안하는이 링크를 찾았습니다. -shutdown \ downgrade-1.0 force-response-1.0이지만 테스트하려면 시간이 필요합니다. 한편 누군가 비슷한 문제가 발생했는지, 그리고 그 문제를 해결하기 위해 무엇을
해야하는지 잘 모르겠습니다

keep-alive가 관련되어 있다고 생각하는 이유는 무엇입니까? 네트워크 트래픽에서 캡처를 수행하여 확인할 수 있습니까?
Shane Madden

그것은 단지 IE9에서만 발생하고 아파치 설정에 관해서는 야생 추측입니다. 그것은 현재 내가 IE에서 특별히하는 것을 알아 차린 유일한 설정입니다 ...
forestclown

이 문제를 해결 한 적이 있습니까? 해결책은 무엇입니까?

답변:


3

서버 / 네트워크 설정에 문제가있을 수 있으며 IE9 문제로 인한 것이 아닙니다.

먼저 고대의 IE6 구성을 제거 SetEnvIf User-Agent ".MSIE." \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0하고 모든 형식으로 실행하십시오. IE5를 지원 해야하는 경우가 아니라면 정규 표현식을 변경하는 것이 올바른 경우가 있습니다.MSIE [2-5]

로드 밸런서에 Keepalive가없는 것이 문제 일 수 있습니다. 로드 밸런서가 매우 의심스럽고 먼저 거기에서 무슨 일이 일어나고 있는지 정확하게 확인하십시오.

로드 밸런서는 일반적으로 둘 이상의 IP 주소 사이에서 '밸런스로드'를 수행합니다 (내부 또는 외부는 중요하지 않습니다).

그런 다음 클라이언트 컴퓨터 / 브라우저는 요청 간 연결을 유지하지 않아도 모든 요청에 ​​대해 SSL 협상을 수행해야합니다. 이 설정을 느리고 시간 초과 설정과 결합하면 SSL 인증서 불일치 문제가 발생할 수 있으며 엄격한 보안 설정으로 인해 IE가 중단 될 수 있습니다. IE9 에이 특성 만 있는지 정확하게 조사하지 않았습니다. 다른 브라우저 도이 작업을 수행하고 다르게 처리한다고 생각합니다.

SSL을 사용 하는 경우 사이트를 훨씬 빠르게 만들고 SSL 협상을 반복 할 필요가 없으므로 KeepAlive가 켜져 있어야 합니다.로드 밸런서는 방문자의 수명 동안 동일한 서버에서 세션을 유지하지 않기 때문에 실패합니다. .

애플리케이션이 내부 (인트라넷) 인 경우로드 밸런서가 임의로 IP 주소를 건너 뛰고 SSL은 연결마다 동일해야합니다.

인트라넷에 있지 않은 경우에도 마찬가지입니다. 네트워크 설정 방법을 모르지만 먼저 확인해야합니다. 로드 밸런서를 비활성화하고 문제가 있는지 확인하십시오. 그리고 계속 살아있게 해주세요.

http://httpd.apache.org/docs/2.2/mod/core.html#keepalive

또한 역방향 DNS 설정이 있는지 확인합니다. 로드 밸런서 또는로드 밸런서 뒤에있는 서버를 가리키는 경우

redbot.org 또는 webpagetest.org 와 같은 외부를 사용 하여 어떤 헤더가 전송되는지 확인하려면 연결을 테스트하고 헤더를 분석하십시오 . 또한 피들러 와 같은 것을 사용할 수 있습니다


1
SSL - 부정 - 종료 여전히 IE> = 6 필요 alexmeyer.com/linux/apachekeepalive.html
user2299634
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.