CherryPyに対してSSLを実行するようにApache2を構成せずに、Apache2の背後で実行しているときにSSLを使用するようにCherryPyを設定する方法はありますか?
CherryPyでSSLを使用し、CherryPyのSSL作業を行うようにApache2を構成するチュートリアルを複数見つけましたが、Apache2でSSL作業を行うように構成せずに、Apache2の背後でCherryPyでSSLを使用するチュートリアルを見つけることができませんでした。
gcbrizanの答えを少し詳しく説明するために、https要求を理解するために必要な最初のステップは、最初に接続を復号化することであるため、できません。SSL/TLSは2つのモードで機能します。トンネリングとSTARTTLS; 後者では、通常の接続が開始され、ある時点で、2つのパーティが接続でやりたいことを確立すると、一方のピアがもう一方のピアに接続の暗号化を開始するように要求します。ESMTP(電子メール)はこのメカニズムを使用します。
ただし、HTTPにはstarttls機能がありません。そのため、代わりにトンネリングが使用されます。httpトラフィックが転送される前に、両方の当事者が安全なトンネルを開始します。クライアントはサーバーの証明書が正しいことを確認し、サーバーはクライアントに対して同じことを行う場合があります(必要な場合/要求された場合)。このすべてが発生した場合にのみ、クライアントはページ要求を送信します。
これを行うにはapache(または他のプロキシ)でした。つまり、トラフィックは暗号化されているため、暗号化されたすべてのトラフィックをオリジンサーバー(質問ではcherrypy)に渡す必要があります。プロキシには「このリクエストをここに送信する」機会がありません。 、しかしその要求はそこにあります」。すべてのトラフィックを変更せずに通過させるだけの場合は、実際には何の役にも立ちません。また、オリジンサーバーを直接公開することもできます。
あなたはそれをすることはできません(私もそうしようとはしません)。まず、ApacheはCherryPyよりもSSLの終了に適しています(他の理由がない場合は、パフォーマンス以外の理由があります)。次に、ApacheはHTTPを話し、HTTPSは実際にはSSLでHTTP暗号化されているため、単純に機能しません。したがって、Apacheが理解できるHTTPを取得する前に、SSLを処理する必要があります。