2016-07-08 2 views
1

localhostで埋め込み(OWIN)Webサーバーを実行する.NET 4.5アプリケーションを開発しました。HTTPS(SSL)を使用して埋め込み(OWIN)Webサーバーを使用してアプリケーションを配布する

インターネット上の公開WebサイトからそのWebサーバーにAJAXリクエストを行う必要があります。 問題は、そのサイトがHTTPSを使用していることです。 Chromeは安全でないコンテンツが読み込まれていると訴えています(これは正しい)。

これを解決するには、埋め込み型WebサーバーにSSLを使用させ、HTTPS-HTTPトラフィックがないようにする必要があります。オンラインでは、自己署名証明書を作成してポートにバインドする例がたくさんありますが、アプリケーションも配布する必要があります。

実際に再配布可能なローカルホスト(OWIN)用の自己署名証明書を作成することはできますか?

私は、これはそれがSSL認証局によって検証さていないため、接続は、信頼されていないことを意味していることを理解し、私たちはlocalhostのみと公開ウェブサイトとの間には、クロスプロトコル通信がないようにそれを使用しようとしています。

+0

むしろlocalhostの配布、自己署名証明書を作成しようとするよりは、私はより多くの賢明なアプローチが発生するだろうと思っているだろうと、自己署名証明書で各マシンはインストールプロセスの一部として実行されます。 –

+0

Damien氏に感謝します。インターネットサイトは「https:// localhost」に接続します。すべてのクライアントがURLとして独自のマシン名を持っていれば、そのコンセプトはもう機能しません。 –

+0

いいえ、私はまだlocalhostをやっていますが、インストール中に証明書を生成します。そうすれば、証明書*を秘密鍵*で配布する必要はなく、すべて同じ証明書を信頼しているマシンが何百(何千から何百万)になることはありません。証明書をローカルでのみ生成する場合、マシンはlocalhostとして*自分自身*を信頼します。 –

答えて

1

私たちはこれを最後に解決しました。

私たちはSignalRを使用しており、この目的のために特別に購入されたクライアントで証明書を配布/インストールしています。 私たちのセットアップは、アプリケーションと証明書の両方をインストールし、OWINサーバーにバインドします。

https://weblog.west-wind.com/posts/2013/Sep/23/Hosting-SignalR-under-SSLhttps

それは、この作業を取得する方法についての詳細なステップバイステップの説明が含まれています。私たちは、このブログを通じてこれを行う方法についての情報のほとんどを得ました。

EDIT:ポートへの証明書のバインドを

netshコマンドを使用して行われます。 InnoSetupを使用してこれを実行します。 Info on how to do this is here.

私たちは1つの証明書を使用しており、コマンドはそれをバインドするために証明書キーが必要です。 これは、複数の(異なる)証明書を使用した場合に問題になる可能性があります。異なる証明書のコマンドを動的に発行するために証明書からキーを抽出できるかどうかはわかりません。単一の証明書に対して、私たちはただ一つの鍵しか持っておらず、それはハードコードされていました。

キーを抽出することが可能であるかもしれない、this is some info that might help in that regard.

+0

あなたの迅速な対応に感謝します。私は実際には全く同じステップを実行しています。はい、動作します。クライアントのインストールごとに、私は別の証明書を持っています。私はあなたが「SSLポートへのBinding証明書」ステップを(コードによって)自動化できるかどうかを知りたいと思っていましたか? – Rajiv

+1

@Rajiv私は私の答えを広げた –

+0

ありがとう!私はこれを試し、私の場合には同じ証明書を使用する可能性を考えます。 – Rajiv

関連する問題