2012-01-14 3 views
1

혼자서 또는 어떤 연구 조사로도 해결할 수없는 HTTPS에 문제가 있습니다. 경우에 따라 HTTPS 요청이 시간 초과되어 "수신 된 데이터 없음"오류가 발생합니다. 이것은 일반적으로 가상 호스트를 사용하여 HTTP에서 HTTPS로 리디렉션 할 때 발생합니다. 매번 발생하지는 않습니다. 봇은 8 번에 1 번, 시간이 끝날 때까지 앉아 있습니다. 이것을 Amazon Load Balancer를 통해 전달한 다음 Ubuntu 10.04에서 Apache 2를 실행하는 서버 (EC2)로 전달합니다. 리디렉션 문제인지 여부는 알 수 없지만 문제는 아닙니다. 설치 문제 일 가능성이 높으므로 아래에 내 설정을 표시하여 볼 수 있습니다.HTTPS 수신 된 데이터 없음

저는이 문제를 최대한 빨리 해결하고 싶습니다. 최대한 빨리 도움을 받으시기 바랍니다. 미리 감사드립니다.

'myurl.com'에 대해 사이트의 가상 호스트 파일을 사용할 수 있습니다. 이것은 deploy.php를 제외한 모든 것에 HTTPS를 강제해야합니다.

<VirtualHost *:80> 
ServerName myurl.com 
RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteCond %{THE_REQUEST} !^[A-Z]+\s/deploy.php [NC] 
RewriteRule !^deploy.php https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L] 
</VirtualHost> 

사이트가 활성화 된 경우 'myurl-ssl'의 가상 호스트 파일입니다.

<VirtualHost *:80> 
     ServerName www.myurl.com 
     RewriteCond %{HTTPS} !=on 
    RewriteCond %{THE_REQUEST} !^[A-Z]+\s/deploy.php [NC] 
    RewriteRule !^depoy.php https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L] 
    NameVirtualHost *:443 
    </VirtualHost> 

    <IfModule mod_ssl.c> 
    <VirtualHost *:443> 
     SSLEngine on 
     ServerAdmin [email protected] 
     ServerName myurl.com 
     SSLCertificateFile /etc/apache2/certs/myurl.pem 
     SSLCertificateKeyFile /etc/apache2/certs/private.key 
     SSLCertificateChainFile /etc/apache2/certs/AddTrustExternalCARoot.crt 
    SSLProtocol all 
    SSLCipherSuite HIGH:MEDIUM 
     DocumentRoot /var/www 

     ErrorLog /var/log/apache2/error.log 
     LogLevel info 
     CustomLog /var/log/apache2/access.log combined 
    </VirtualHost> 

다시, 문제는 내가 오류 "데이터가 수신 된"얻을 볼 수있는 곳 HTTPS를 강제로 내 설치 또는 제 리디렉션 내에서 뭔가를 것으로 보인다 (크롬에 324 만,이 문제는 모든 브라우저에서 발생). 나는 그것이 어딘가에 우리의 HTTPS 설치와 관련이 있다고 믿지만 그것이 무엇인지 알 수 없다.

감사합니다.

답변

1

저는 지금이 문제로 오래 동안 고생 중이며 브라우저에 의존하지 않습니다. 모든 브라우저에서 재생하기가 상대적으로 쉽습니다.

NAT 라우터 테이블이 너무 많은 동시 연결 만 처리 할 수 ​​있기 때문에 NAT 라우터 테이블이 매우 쉽게 오버플로되기 때문에 문제가 발생합니다. 페이스 북과 트위터 같은 현대 AJAX 사이트는 많은 연결을 사용합니다. 이 문제는 요즘 대부분의 사이트에서 SSL 연결을 사용한다는 사실 때문에 더욱 심해집니다.

왜이 문제가 악화됩니까?

SSL 연결 핸드 셰이크 후 상대적으로 영구적이기 때문에, 그리고 라우팅는 NAT 라우터에 의해 감소되는 경우, 브라우저는 정말 상황을 처리하고, 데이터 또는 유사한 오류 긴 SSL 시간에 조회 할 수 없습니다. 그러나 SSL 핸드 셰이크가 너무 느리기 때문에이 시간 제한으로도 주요 브라우저에서 SSL 연결을 제대로 다시 연결하고 다시 핸드 셰이크하는 것처럼 보이지는 않습니다. 브라우저는 NAT 라우팅 관련 문제를 이해하지 않고 가능한 한 멀리 기존 연결을 재사용하려고합니다 더 이상 연결이 존재하지 않습니다.

또한 동일한 SSL 서버에 대한 여러 탭이 동일한 TCP 연결을 모두 재사용하는 것으로 보이므로 하나의 탭만 닫으면 실제로 연결이 닫히지 않습니다.

따라서 SSL NO DATA 시간 초과를 줄이고 기존 SSL 연결에 대한 모든 지식을 실제로 지우고 전혀 새로운 TCP 연결을 열어 NAT를 만들기 위해 브라우저를 수정하는 것이 좋습니다 라우터는 행복하고 상쾌합니다.

아직이 문제를 해결하기위한 실질적인 방법을 찾지 못했지만 위의 버그는 분명히 관련이 있지만 Chrome 엔지니어가 근본 원인을 이해하지 못하는 것 같습니다.

관련 문제