conf

conf

SSL 256비트 인증서를 사용하는 느린 Apache 서버에 문제가 있습니다.

ab -n 500 https://example.com/
Time per request 29 ms

ab -n 500 http://example.com/
Time per request 10 ms

두 요청 모두에 52바이트가 전송되며 테스트는 동일한 데이터 센터에 있는 서버에서 수행됩니다.

conf

SSLEngine on
SSLProtocol All -SSLv2
SSLHonorCipherOrder On
SSLCipherSuite ALL:!ADH:!EXP:!LOW:!RC2:!3DES:!SEED:!RC4:+HIGH:+MEDIUM

SSL이 일반 HTTP 요청보다 3배 느린 것이 정상인가요?

답변1

서버를 어떻게 벤치마킹하셨나요? HTTPS 서버 뒤에서 어떤 애플리케이션이 실행되고 있습니까? 서버는 어떤 CPU를 사용합니까? 보시다시피 귀하의 질문에는 중요한 세부 사항이 많이 부족합니다 ...

어쨌든 SSL은 확실히 "순수한" HTTP보다 다소 느립니다. 공개 키 암호화는 대칭 키 암호화보다 훨씬 느립니다. 이것이 바로 pubkey가 개인 대칭 키를 교환하는 데만 사용되고 채널이 대칭 키로 전환되는 이유입니다. 키 암호화.

답변2

HTTPS는 교환할 데이터(서버의 X.509 인증서)가 많고 설정할 보안 데이터 연결이 있기 때문에 속도가 느립니다.

ab'연결' 시간을 제공할 수 있으며 여기서 타이밍 차이를 확인할 수 있습니다. TLS 설정은 설정하지 않는 것보다 시간이 더 걸립니다.

답변3

ab당신은 브라우저가 하는 일과 브라우저가 하는 일 의 차이점을 깨달아야 합니다 . (나는 ab그것에 대해 충분히 익숙하지 않기 때문에 무엇인지 대답하지 않을 것 입니다).

예를 들어:

  1. abTLS 세션 재사용을 사용하고 있나요 ? 브라우저는 그로 인해 (후속 요청의 경우) 훨씬 더 빠르게 수행됩니다. Wireshark로 이를 확인할 수 있습니다(아마도https://ask.wireshark.org/questions/9007/ssl-session-reuse유용하다)
  2. ab느린 것으로 알려진 암호를 사용하고 있습니다 (ssl_request_log에서 어떤 암호가 협상되는지 확인할 수 있습니다).
  3. HTTPS 연결에서 HTTP 연결 유지를 지원합니까? 페이지의 모든 자산을 가져올 만큼 충분한 시간 동안이라도 그렇게 해야 합니다. 이렇게 하면 서버에 대한 SSL/TLS 요청 수가 실제로 줄어듭니다.
  4. 사이트에 캐시 친화적인 콘텐츠(특히 브라우저 캐시의 경우)가 있습니까? 와 같은 응답 헤더를 사용하고 있습니까 Cache-Control: public, max-age=3600, s-max-age=3600?

여기에 집중하면 HTTPS 전용 사이트를 훌륭하고 빠르게 실행하도록 쉽게 만들 수 있습니다. 이것이 (효과적으로) HTTPS 전용 비디오 스트리밍 사이트에 대해 수행하는 작업이며 SSL 연결 시간에 대해 걱정할 필요가 없습니다.

답변4

웹사이트 속도 저하 이유:

  • SSL 인증서에는 핸드셰이크 중에 데이터 볼륨을 늘리는 여러 중간 인증서가 있습니다.

  • 웹 사이트가 OCSP 요청에 응답하고 연결을 설정하는 데 1/3초가 걸리므로 OCSP 및 CRL 성능도 수정되지 않습니다.

빠른 HTTPS 연결에 대한 권장 사항:

  • 텍스트 콘텐츠를 압축하여 CPU 리소스 사용을 완화하거나 현재 프로세스를 업그레이드하여 암호화 작업을 처리할 수 있습니다.

  • 페이지의 모든 내용이 HTTPS를 통해 검색되는지 확인해야 합니다.

  • 도움을 받아SPDY- 웹 페이지 로딩 시간을 최소화하는 Google의 오픈 소스 네트워크 프로토콜입니다.

  • 인증 기관 측에서 CA는 다음을 수행할 수 있습니다.OCSP 및 CRL 응답 시간 단축300ms에서 100ms(밀리초)까지입니다.

  • CA는 추가 바이트와 시간을 소비하므로 SSL 인증서의 중간 체인 크기를 줄일 수 있습니다.

관련 정보