web-dev-qa-db-ja.com

Azure Webアプリのcsrファイルを作成する方法

誰かに渡すためにcsrファイルを作成する必要があります。

Csrファイルは、Azure WebアプリのSSL証明書用です。

グーグルで検索すると、csrファイルを生成するためのwhereに関する矛盾した情報が見つかりました。

一部の情報源は次のように述べています。Webアプリが実行されているサーバー上でcsrファイルを作成する必要があります。

私の場合、Azure上のサーバーは不明です。そこでは何も実行できません...

または、すべての会社データ+カスタムドメインで入力されたサブジェクトを使用してローカルPCにcsrを作成しても大丈夫ですか?

24
HelloWorld

Certreq.exeまたはOpenSSLツールを使用して、cerファイルを作成できます。

詳細については、 Azure App ServiceでアプリのHTTPSを有効にする の公式ドキュメントをご覧ください。

7
Sascha Dittmann

Digicertには、Azureサイトの証明書を作成する方法に関するツールと明確な指示があります。

https://www.digicert.com/csr-creation-ssl-installation-windows-Azure-website.htm

15
Mason240

コンソールにopensslがインストールされているので、そこにファイルを生成できます。元のコマンドで必要なすべての設定をopensslに指定する必要があります。これは、質問のプロンプトが表示されるはずですが、現在は機能しないためです。だからこのようなもの:

openssl req -new -newkey rsa:2048 -nodes -out yoursite_com.csr -keyout yoursite_com.key -subj "/C=US/ST=California/L=San Francisco/O=Your Site Inc./OU=Engineering/CN=yoursite.com"

コンソールを使用してcsrを開くことができない場合、実際にはKuduを使用して([高度なツール]をクリック)ファイルを開いて内容をコピーする必要があります。

9
Peter W

手動で行う代わりに、オプションとして「App Certificate Service」の追加サービスを検索し、SSL証明書を購入してアプリケーションにバインドするウィザードを提供します。手作業でCSRを生成するよりもはるかに簡単で迅速であり、混乱もはるかに少なくなります。ドキュメントは冗長であり、サーバーにリモート接続してそこにCSRを生成するかどうかなどについては明確ではなかったため、App Certificate Serviceを使用して行うことを強くお勧めします。

5
HandleThatError

その他は、これらの事実に関する貴重な洞察を提供しています:

  • ターゲットサーバー(証明書を使用するサーバー)とは別のコンピューターでCSRを生成できること(および基本的にAzure Web Appの場合は必要です)。
  • CSRの生成に使用できるツール(例:openssl、DigiCertユーティリティ)。
  • Azure Web App(Azure App Certificate Service)の証明書を取得する別の方法。

たぶん私は何かを見逃しているかもしれませんが、私は上の答えを見ません:

  1. ターゲットマシンでCSRを生成する(または生成する必要がある)のはなぜですか?
  2. なぜ実際にそうする必要はないのですか?

これら2つの質問に答える私のアプローチは、CSRの生成は実際にはプロセスであり、2つのアーティファクトを生成するという事実から始まります。明らかな部分-証明書の要求-は、おそらくこの問題にとってそれほど重要ではありません。より重要なものは、実際に最初に来なければならないのは、生成されるRSAキーペアです。ここでは、ペアの公開部分がCSRリクエストで使用され、プライベート部分は、証明書。

通常、キーペアはハードウェアに基づいたエントロピーデータを使用して生成されますが、使用しているマシンに固有であるため、結果(キーペア)はどこでも使用できます。キー値は数学的に相互にバインドされているだけです。 CSRのコンテンツは公開鍵と要求された証明書のサブジェクトに基づいているため、ここでも何も存在せず、他の場所では使用できません。これは、実際に使用するマシン/サービスとは異なるマシン/サービスでCSR(およびキー)を実際に生成することに技術的な制限がない理由を説明しているので、質問番号2に対処します。

質問番号1への答えは、プロセスで生成されている秘密キーの重要な機能に由来しています。この重要な機能は、プライベートのままにする必要があるということです。証明書IDの唯一のユーザーがそれを使用できることが理想です。その「ユーザー」がターゲットサービス(Webサーバー)になります。他の場所でキーを生成する場合、その環境およびターゲットへの転送中にキーを保護する責任があります。これは多くの場合、不必要なリスクです。推奨される解決策は、多くの場合、秘密キーがストアから抽出(エクスポート)されるのを防ぐ秘密キー保護を使用して、ターゲット証明書/キーストアにキーを生成することです。ターゲットサービス(Webサーバー)でさえ、実際にはそれを抽出/読み取ることはできません(ただし、使用することはできます)。 CSR作成プロセスでキーペアが生成されるため、このプロセスは、そのストアがある場所で、そのストア機能によって実行される必要があることを意味します。これでこの質問に答えるはずです。サイドノートとして、DigiCertツールとIISマネージャーUIは、Windows証明書ストアを使用しています。これは、秘密鍵の保護レイヤーを追加しますが、鍵をエクスポート可能としてマークしますOpenSSLツール(Windows)は、Windows証明書ストアの外部で(ファイルとして)キーを生成するため、簡単にアクセスできますが、安全ではありません。

私はこの記事を見つけました: https://www.namecheap.com/support/knowledgebase/article.aspx/9854//how-to-generate-a-csr-code-on-a-windowsbased- server-without-iis-manager 、CSRを生成するための3つの追加の方法/ツールについて説明します。最初の方法(Microsoft管理コンソールの証明書スナップインを使用)では、秘密キーをエクスポート不可としてマークできます。 。

もちろん、Azure Web App証明書ストアには現在CSRの生成を許可する機能がないため、CSRを別の場所で生成する必要があるため、プライベートキーを取得(エクスポートなど)する機能は重要です。

3
Hilarion