質問

IISにWebサイトにHTTPSをインストールするには、.pfxファイルが必要です。

証明書(.cerまたはpem)とprivate key(.crt)の2つの個別のファイルがありますが、iisは.pfxファイルのみを受け入れます。

私は明らかに証明書をインストールし、証明書マネージャー(MMC)で利用可能ですが、証明書のエクスポートウィザードを選択すると、PFX形式を選択できません(グレイアウト)

それを行うためのツールやそのプログラムを実行する例はありますか?

正しい解決策はありません

他のヒント

OpenSSLを使用する必要があります。

openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt

キーファイルは、秘密キーを含む単なるテキストファイルです。

ルートCAと中間の証明書がある場合は、複数を使用してそれらを含めてください -in パラメーション

openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt -in intermediate.crt -in rootca.crt

ここからOpenSSLをインストールできます。 openssl

Microsoft PVK2PFXコマンドラインユーティリティには、必要な機能があるようです。

PVK2PFX(PVK2PFX.EXE)は、.spc、.cer、および.pvkファイルに含まれる公開キーおよび秘密キー情報を個人情報交換(.pfx)ファイルにコピーするコマンドラインツールです。
http://msdn.microsoft.com/en-us/library/windows/hardware/ff550672(v=vs.85).aspx

注:c#ソリューションが必要/必要/希望する場合は、使用を検討することができます。 http://www.bouncycastle.org/ API。

Windows GUIをお探しの場合は、Digicertをご覧ください。私はこれを使用したばかりで、それはかなり簡単でした。

SSL]タブの下で、最初に証明書をインポートしました。その後、証明書を選択したら、キーファイルの有無にかかわらず、PFXとしてエクスポートすることができました。

https://www.digicert.com/util

OpenSSLやMakeCertなどは必要ありません。また、あなたのcaからあなたに与えられた個人的な鍵は必要ありません。問題は、CAが提供するキーファイルとCERファイルを使用できることを期待していることを保証できますが、「IIS Way」に基づいていません。ここで悪い情報を見るのにとてもうんざりしていたので、主題と解決策をブログにすることにしました。何が起こっているのかを理解し、それがどれほど簡単かを見ると、あなたは私を抱きしめたいと思うでしょう:)

PFXを使用したIISのSSL CERTは、SSLとIISが説明しました - http://rainabba.blogspot.com/2014/03/ssl-certs-for-iis-with-pfx-once-and-for.html

IIS「サーバー証明書」UIを使用して「証明書要求」を生成します(このリクエストの詳細はこの記事の範囲外ですが、それらの詳細は重要です)。これにより、IISの準備ができます。次に、そのCSRをCAに渡し、証明書を求めます。次に、彼らがあなたに与えたCER/CRTファイルを取得し、リクエストを生成したのと同じ場所でIISに戻り、「完全な証明書リクエスト」に戻ります。それは.cerを要求するかもしれません、そしてあなたは.crtを持っているかもしれません。彼らは同じことです。拡張機能を変更するか、使用してください . .crtを選択するための拡張ドロップダウン。ここで、適切な「フレンドリーな名前」(*.yourdomain.com、yourdomain.com、foo.yourdomain.comなど)を提供します。これは重要です!これは、CSRのセットアップとCAが提供したものと一致する必要があります。ワイルドカードを求めた場合、CAはワイルドカードを承認して生成した必要があり、同じものを使用する必要があります。 foo.yourdomain.comのCSRが生成された場合、このステップで同じことを提供する必要があります。

MakeCertツールを使用する必要があります。

管理者としてコマンドプロンプトを開き、次を入力します。

makecert -sky exchange -r -n "CN=<CertificateName>" -pe -a sha1 -len 2048 -ss My "<CertificateName>.cer"

どこ <CertifcateName> =作成する証明書の名前。

次に、[StartMgr.msc]を[スタート]メニューで入力して、[個人]> [証明書]> [証明書]をクリックすると、管理コンソールの証明書マネージャーのスナップインを開くことができます。

これが記事です。

https://azure.microsoft.com/documentation/articles/cloud-services-certs-create/

https://msdn.microsoft.com/en-us/library/ff699202.aspx

((記事からの関連する引用は以下にあります))

次に、展開に署名するために使用する.pfxファイルを作成する必要があります。コマンドプロンプトウィンドウを開き、次のコマンドを入力します。

PVK2PFX –pvk yourprivatekeyfile.pvk –spc yourcertfile.cer –pfx yourpfxfile.pfx –po yourpfxpassword

どこ:

  • PVK -YourPrivateKeyFile.pvkは、ステップ4で作成した秘密キーファイルです。
  • SPC -YourCertFile.cerは、ステップ4で作成した証明書ファイルです。
  • pfx -yourpfxfile.pfxは、作成する.pfxファイルの名前です。
  • po -yourpfxpasswordは、.pfxファイルに割り当てるパスワードです。 .pfxファイルをVisual Studioのプロジェクトに初めて追加すると、このパスワードの入力を求められます。

(オプションでは(OPではなく、将来の読者向け)、.cerおよび.pvkファイルをゼロから作成できます)(上記の前にこれを行うことになります)。 MM/DD/YYYYは、開始日と終了日のプレースホルダーです。完全なドキュメントについては、MSDNの記事を参照してください。

makecert -sv yourprivatekeyfile.pvk -n "CN=My Certificate Name" yourcertfile.cer -b mm/dd/yyyy -e mm/dd/yyyy -r

私はあなたの要件とのリンクを得ました。CRTとキーファイルをOpenSSLでPFXに結合する

上記のリンクからの抜粋:

最初に、既存の.crtファイルからルートCA証明書を抽出する必要があります。これは後で必要だからです。 .crtを開き、[認定パス]タブをクリックします。

最上部の証明書(この場合はVerisign)をクリックし、表示証明書を押します。 [詳細]タブを選択し、コピーを押してファイルに押します…

base-64エンコードされたx.509(.cer)証明書を[rootca.cer]または類似したものとして保存します。他のファイルと同じフォルダーに配置します。

rootca.cerからrootca.crtに名前を変更しました。これにより、フォルダーに3つのファイルがあり、そこからpfxファイルを作成できます。

これがOpenSSLが必要な場所です。どちらもできます Windowsにダウンロードしてインストールします, 、または単にOSXで端子を開きます。

編集:

  1. があります 証明書をインストールする方法に関する段階的な情報とのリンクをサポートします。

  2. 正常にインストールした後、証明書をエクスポートし、選択します .pfx フォーマット、秘密鍵を含めます。

    重要な注意点: :.pfx形式で証明書をエクスポートするには、証明書を要求した同じマシンの手順に従う必要があります.

  3. インポートされたファイルはサーバーにアップロードできます。

これは、 *.cerを *.pfxファイルに変換する最も簡単な方法です。

Digicertからポータブル証明書コンバーターをダウンロードするだけです。https://www.digicert.com/util/pfx-certificate-management-utility-import-export-instructions.htm

それを実行し、ファイルを選択して、 *.pfxを取得します!!

.keyおよび.pemファイルから.pfxファイルを作成しました。

このような openssl pkcs12 -inkey rootCA.key -in rootCA.pem -export -out rootCA.pfx

証明書がMMCで利用可能であると言うと、「現在のユーザー」または「ローカルコンピューター」で利用できますか?秘密鍵がローカルコンピューターの下にある場合にのみエクスポートできることがわかりました。

MMCに証明書のスナップを追加して、証明書を管理するアカウントを選択できます。ローカルコンピューターを選択してください。証明書がない場合は、ストアを右クリックしてすべてのタスク>インポートを選択してインポートします。

ここで、証明書のローカルコンピューターバージョンのローカルコンピューターバージョンに基づいてインポートされた証明書に移動します。証明書を右クリックして、すべてのタスク>エクスポートを選択します。エクスポートウィザードの2番目のページでは、秘密鍵をエクスポートするかどうかを尋ねる必要があります。 [はい]を選択します。 PFXオプションは、利用可能な唯一のオプションになります(NOを選択した場合はグレーアウトされ、秘密キーをエクスポートするオプションは現在のユーザーアカウントで利用できません)。

PFXファイルのパスワードを設定し、証明書名を設定するように求められます。

私は同じ問題を抱えていました。私の問題は、拡張されたSSL検証プロセスが完了する前に、最初の証明書要求を生成したコンピューターがクラッシュしたことです。新しい秘密鍵を生成してから、証明書プロバイダーから更新された証明書をインポートする必要がありました。秘密鍵がコンピューターに存在しない場合、PFXとして証明書をエクスポートすることはできません。それらのオプションはグレーアウトされています。

IISを使用して新しいCSRを生成するのはおそらく最も簡単ですが(@Rainabbaが言ったように)、中級証明書があると仮定すると、いくつかのオンラインコンバーターがあると仮定します。https://www.sslshopper.com/ssl-nverter.html

これにより、別のプログラムをインストールすることなく、証明書と秘密鍵からPFXを作成できます。

ほとんどの場合、PFX(秘密鍵を含む)として証明書をエクスポートできない場合は、MMC/IIが秘密キー(CSRの生成に使用)を見つけることができない/アクセスできないためです。これらは、この問題を修正するために私が従った手順です。

  • 管理者としてMMCを実行します
    • MMCを使用してCSRを生成します。従う この指示 証明書をエクスポート可能にするため。
  • CA(CRT + P7B)から証明書を取得したら、それらをインポートします(個人証明書、および中級認定機関証明書)
  • 重要:新しい証明書(個人証明書)すべてのタスクを右クリックして、秘密鍵を管理し、アカウントまたは全員に権限を割り当てます(リスク!)。終了したら、以前の権限に戻ることができます。
  • ここで、証明書を右クリックして、すべてのタスクを選択してください。Exportを選択すると、PFXファイルとして秘密鍵を含む証明書をエクスポートできるはずです。Azureにアップロードできます!

お役に立てれば!

数人のユーザーがこれをインストールし、コマンドラインプログラムを追加してダウンロードすることについて話していることを知っています...

個人的には、私は怠け者で、これらすべての方法が面倒で遅いと感じています。さらに、何もダウンロードして、必要がない場合は正しいCMD行を見つけたくありません。

私の個人的なIISサーバーで私にとって最良の方法は、RapidsSlonlineを使用することです。これは、サーバー上にあるツールで、証明書と秘密鍵をアップロードでき、IISに直接インポートできるPFXファイルを生成できます。

リンクはこちらです:https://www.rapidsslonline.com/ssl-tools/ssl-nverter.php

以下は、要求されたシナリオに使用される手順です。

  1. 現在のタイプ] = PEMを選択します
  2. = pfxの変更
  3. 証明書をアップロードします
  4. 秘密鍵をアップロードします
  5. ルートCA証明書または中級証明書がある場合もそれらをアップロードします
  6. IISで使用されている選択のパスワードを設定します
  7. Recaptchaをクリックして、あなたがボットではないことを証明してください
  8. 変換]をクリックします

そして、それはあなたがPFXをダウンロードして、IISのインポートプロセスでこれを使用する必要があります。

これが他の人のような怠zyな技術者に役立つことを願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top