Webサイトをホストするために、Wixに概念が似たプラットフォームを作成しています。すべてのサイト(特定の問題がサイトごとにこれを妨げる場合を除く)がhttpsによって保護されることを保証したい.
システムの基本は、理論的には無制限の数のドメインが、すべてのポートでデフォルトのApache vHostの下で同じPHPアプリケーションを実行する多数の仮想サーバーに接続するロードバランサーにマップできることです。 PHPアプリケーションに転送される443トラフィック。
アプリケーションへのアクセスに使用できるドメインの数に制限はなく、毎日新しいドメインが追加されるため、これを達成するために適切な種類の証明書が何かを探しています。
理想的には、次の条件を満たすソリューションまたは証明書タイプを求めています...
LetsEncryptなどの自動化されたサービスを介してApacheでホスティングするより古典的なサイトで、vhostごとに単一の証明書を使用してこれを行う方法を知っていますが、上記は私を困惑させ、これでオンラインで何かを見つけることができませんでした。
SSL証明書をドメイン名に接続するには、次の3つの方法があります。
証明書を再発行せずに新しいホスト名を追加するという要件は、SNIを使用する必要があることを意味します。
ただし、サーバーに接続するドメイン名をサーバーが認識しないという2番目の要件は、SNIと互換性がありません。 SNIは、ホスト名に基づいて、使用する正しい証明書をネゴシエートします。そのため、通常、SSL証明書はApache仮想ホストで構成されます。 ApacheはHTTPS接続をネゴシエートし、そのプロセスのホスト名を認識する必要があります。
Apacheには、サーバーを再起動して仮想ホストを追加する機能があります。 Apacheは、再起動なしの構成の再読み込みをサポートしています。通常は、仮想ホストの構成ファイルをSSL証明書とともに追加します。次に、コマンドを実行して、Apacheに構成をリロードさせ、再起動せずに新しいホストの提供を開始します。私はUbuntuを使用しています。Ubuntuでのコマンドは次のとおりです。
Sudo service Apache2 reload