web-dev-qa-db-ja.com

証明書と秘密鍵から.pfxファイルを作成する方法

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

証明書(.cerまたはpem)と秘密鍵(.crt)の2つの別々のファイルがありますが、IISは.pfxファイルのみを受け入れます。

明らかに証明書をインストールし、それは証明書マネージャ(mmc)で利用可能ですが、Certificate Export Wizardを選択するとPFX形式を選択できません(グレー表示されます)

それを実行するためのツールや、それをプログラムで実行するC#の例はありますか。

301
jlp

あなたは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

435
jdehlin

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

Pvk2Pfx(Pvk2Pfx.exe)は、.spc、.cer、および.pvkファイルに含まれている公開キーと秘密キーの情報をPersonal Information Exchange(.pfx)ファイルにコピーするコマンドラインツールです。
http://msdn.Microsoft.com/ja-jp/library/windows/hardware/ff550672(v=vs.85).aspx

注:C#のソリューションが必要な場合は、 http://www.bouncycastle.org/ / apiの使用を検討してください。

36
Seymour

WindowsのGUIをお探しなら、DigiCertを調べてください。私はこれを使いました、そしてそれはかなり単純でした。

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

https://www.digicert.com/util

29
joelnet

あなたはopensslやmakecertあるいはそれのどれも必要としません。また、あなたのCAからあなたに与えられた個人鍵も必要ありません。私が抱えている問題は、CAが提供する鍵ファイルとcerファイルを使用できると期待していることですが、それらは "the IIS way"に基づいていないということです。私は、この件と解決策をブログにすることにしたので、ここで悪い情報と困難な情報を見ることにうんざりしています。何が起こっているのかを理解し、それがどれほど簡単かを理解したら、あなたは私を抱きしめたいと思うでしょう:)

PFXを使用したIISのSSL証明書 - SSLおよびIISの説明 - http://rainabba.blogspot.com/2014/03/ssl-certs-for- if-with-pfx-once-and-for.html

IIS "サーバー証明書" UIを使用して "証明書要求を生成"します(この要求の詳細はこの記事の範囲外ですが、これらの詳細は重要です)。これにより、IIS用に準備されたCSRが得られます。その後、そのCSRをCAに渡し、証明書を要求します。それからあなたは彼らがあなたに与えるCER/CRTファイルを取り、あなたが要求を生成したのと同じ場所で「Complete Certificate Request」にIISに戻ってください。それは.CERを要求するかもしれず、あなたは.CRTを持つかもしれません。それらは同じものです。拡張子を変更するか、 を使用してください。 extensionドロップダウンで.CRTを選択します。適切な "わかりやすい名前"(* .yourdomain.com、yourdomain.com、foo.yourdomain.comなど)を入力してください。これでIS重要です。これはあなたがCSRを設定したものとあなたのCAがあなたに提供したものと一致しなければなりません。ワイルドカードを要求した場合は、CAがワイルドカードを承認して生成し、それを使用する必要があります。あなたのCSRがfoo.yourdomain.comのために生成された場合、あなたはこのステップで同じものを提供しなければなりません。

26
rainabba

https://msdn.Microsoft.com/ja-jp/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ファイルに割り当てるパスワードです。初めてVisual Studioでプロジェクトに.pfxファイルを追加すると、このパスワードの入力を求められます。

(オプションで(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
6
granadaCoder

あなたはmakecertツールを使う必要があります。

Adminとしてコマンドプロンプトを開き、次のように入力します。

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

<CertifcateName>はあなたの証明書の名前を作成する=ここで。

その後、[スタート]メニューに「certmgr.msc」と入力して[管理]の[証明書マネージャ]スナップインを開き、[個人]> [証明書]>をクリックすると、証明書が利用可能になります。

これが記事です。

https://Azure.Microsoft.com/documentation/articles/cloud-services-certs-create/

6
BentOnCoding

あなたの要件とのリンクを取得しました。 CRTファイルとKEYファイルを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. インポートしたファイルをサーバーにアップロードできます。

6
sudhAnsu63

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

こんなopenssl pkcs12 -inkey rootCA.key -in rootCA.pem -export -out rootCA.pfx

4
Siim Nelis

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

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

それを実行し、ファイルを選択してあなたの* .pfxを入手してください。

4
user1613797

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

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

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

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

3
Ryan Elkins

中間証明書があると仮定してIISを使用して新しいCSRを生成するのがおそらく最も簡単ですが(@rainabbaが言ったように)、例えば: https:// www。 sslshopper.com/ssl-converter.html

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

1
William

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

1
Bill Mahoney

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

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

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

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

以下は、要求されたシナリオに使用されるステップです。

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

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

これが他の志を同じくして怠惰な技術者のように役立つことを願っています。

0
TheNerdyNerd

その仕事をしているように見えるPowershell用のExport-PfxCertificateコマンドレットがあります。

0
Usurer

ほとんどの場合、証明書をPFX(秘密鍵を含む)としてエクスポートできないのは、MMC/IISが秘密鍵(CSRの生成に使用される)にアクセスできない、またはアクセスできないからです。これらは私がこの問題を解決するために従ったステップです:

  • Admin としてMMCを実行します。
    • MMCを使用してCSRを生成します。証明書をエクスポート可能にするには、 - この手順 に従ってください。
  • CAから証明書を取得したら(crt + p7b)、それらをインポートします(Personal\Certificates、およびIntermediate Certification Authority\Certificates)。
  • 重要:新しい証明書を右クリックし([個人]\[証明書])、[すべてのタスク]をクリックします。秘密キーを管理し、自分のアカウントまたは全員にアクセス許可を割り当てます(危険です)。終了したら、以前の権限に戻ることができます。
  • 証明書を右クリックして[すべてのタスク]を選択し、[エクスポート]をクリックします。秘密キーを含む証明書をPFXファイルとしてエクスポートできるはずです。これでAzureにアップロードできます。

お役に立てれば!

0
Jose Parra