SSL256ビット証明書を使用した低速のApacheサーバーに問題があります
ab -n 500 https://example.com/
Time per request 29 ms
ab -n 500 http://example.com/
Time per request 10 ms
52バイトが両方のリクエストで送信され、テストは同じデータセンター内のサーバーから実行されます
SSLEngine on
SSLProtocol All -SSLv2
SSLHonorCipherOrder On
SSLCipherSuite ALL:!ADH:!EXP:!LOW:!RC2:!3DES:!SEED:!RC4:+HIGH:+MEDIUM
SSLがプレーンHTTPリクエストより3倍遅いのは正常ですか?
サーバーをどのようにベンチマークしましたか? HTTPSサーバーの背後で実行されているアプリケーションは何ですか?サーバーはどのCPUを使用していますか?どのように見ることができますか、あなたの質問には多くの重要な詳細が欠けています...
とにかく、SSLは確かに「純粋な」HTTPよりもいくらか遅くなります。公開鍵暗号化は対称鍵暗号化よりもはるかに遅くなります。これが、公開鍵が秘密の対称鍵を交換するためにのみ使用され、チャネルが対称鍵に切り替わる理由です。キー暗号。
HTTPSは、交換するデータ(サーバーからのX.509証明書)が多いため低速であり、セットアップするための安全なデータ接続があります...
ab
は「接続」時間を与えることができ、そこでタイミングの違いがわかります。 TLSのセットアップには、セットアップがない場合よりも時間がかかります。
ab
の機能とブラウザの機能の違いを理解する必要があります。 (私はそれについて十分に精通していないので、ab
が何をするかについては答えません)。
例えば:
ab
はTLSセッションの再利用を使用していますか?ブラウザーは、そのため(後続の要求に対して)、はるかに高速に実行されます。これはwiresharkで確認できます(おそらく https://ask.wireshark.org/questions/9007/ssl-session-reuse 便利です)ab
は遅いことがわかっている暗号を使用していますか(どの暗号がネゴシエートされるかはssl_request_logで確認できます)Cache-Control: public, max-age=3600, s-max-age=3600
などの応答ヘッダーを使用していますか。それらに集中すれば、HTTPSのみのサイトを簡単かつ迅速に実行させることができます。これは、(事実上)HTTPSのみであるビデオストリーミングサイトに対して私が行うことであり、SSL接続時間について心配する必要はありませんでした。
はい、HTTPSの接続確立はHTTPの約3倍遅いのが普通です。ここに 理由を説明するのに良い読み物 。
ウェブサイトの速度が低下する理由:
SSL証明書には、ハンドシェイク中のデータ量を増やすいくつかの中間証明書が含まれています。
WebサイトがOCSP要求への応答と接続の確立に1/3秒かかるため、OCSPとCRLのパフォーマンスも修正されません。
高速HTTPS接続の推奨事項:
CPUリソースの使用率は、テキストコンテンツを圧縮するか、現在のプロセスをアップグレードして暗号化タスクを処理することで軽減できます。
ページ上のすべてがHTTPS経由で取得されていることを確認する必要があります。
[〜#〜] spdy [〜#〜] -ウェブページの読み込み時間を最小限に抑えるGoogleのオープンソースネットワークプロトコルを活用してください。
認証局側では、CAは OCSPおよびCRLの応答時間を短縮 300msから100ms(ミリ秒)にできます。
CAは、追加のバイトと時間を消費するため、SSL証明書の中間チェーンサイズを減らすことができます。