2017-11-23 21 views
1

私は、ユーザーが自分のWebサイトを作成できるWebアプリケーションを構築しています。ユーザーは、これらのサイトで独自のドメイン名を指定することができます。アプリケーションのプロトタイプは既に存在します。 Apacheはすべてのホスト名に対する要求を受け入れ、実際のドメインマッピングと解決はアプリケーションレベルで行われます(単純なデータベース検索で、要求されたホスト名と一致するサイトが取得されます)。ウェブアプリケーションでユーザー提供のSSL証明書をサポートする方法

ここで私は立ち往生していますが、ユーザーのSSL証明書がこの方程式に適合するかどうかです。ユーザーがSSL証明書をアップロードできるようにするために必要な手順は、アプリケーションがホスト名へのセキュアなHTTP要求を正常に処理できるようにすることです。これはアプリケーションだけで処理できるものなのでしょうか?

答えて

1

私はあなたのアプリケーションだけでこれを処理できないと思います。 あなたが中間CAの企業であるか、ユーザーのドメインSSL証明書を取得してユーザーのドメインに署名することができないという点を除いて、CAの問題です。

0

一般的なユーザーであり、自分のサーバー(または自分の有料の共有サーバーホスティングアカウント)で自分のWordPressや他のサイトを設定するのではなく、このシステムのWebサイトを作成しようとしているユーザーをIMHO 正しいSSL証明書を設定する方法が全く分かりませんので、インストールすることができるように安全に手に入れてください。問題が発生することはありません。

ただし、必要な操作を行うにはLet's Encryptを使用することができます。ドメインを追加するプロセスの一環として、ドメインがサーバーを指していると(ユーザーはドメインレジストラでその操作を行う必要があります)、Let's Encrypt証明書を作成して検証できます。私の好きなウェブホスティング会社(私はこれは関連性がないので名前を付けるつもりはありません - だれでもこれをやることができます)は、コントロールパネルの一環としてこの機能を提供します。彼らはまた、彼らが何年も持っているように、いくつかの大きな発行者と有料の証明書を提供しますが、ほとんどの小規模なサイトでLet's Encryptは非常にうまく動作し、完全に無料です。セットアップには文字通りわずか1分かかります。重要な点は、ユーザーがドメインを指すように、IPアドレスまたはCNAMEを最初に指定する必要があることです。ドメインがサーバーに解決されると、Let's Encrypt証明書を取得できます。

+0

証明書がどこから来るのかという問題は、本当に別のものです。 Let's Encryptを潜在的な解決策としてすでに議論しました。私の質問は、ドメインごとに別々のApache仮想ホストが存在しないことを念頭に置いて、証明書をインストールする方法と場所の詳細です。 –

+0

@SamHastings私のポイントは、ユーザーが証明書をアップロードしたりインストールしたりしないことです。あなたのシステムは、Let's Encryptツールを使用して、ユーザーに代わってApacheに証明書をリクエストし、検証し、インストールします。彼らは名前の "ユーザーのSSL証明書"になります - 実際にはユーザーによって提供されません。別の仮想ホストにまで、Let's Encryptは実際にあなたのために世話をすることができると思いますが、現時点では別のドメインを既存のサーバーに追加する作業をしているので、ちょっと混乱することがあります。 – manassehkatz