IISのWebサイトにhttpsをインストールするには、.pfxファイルが必要です。
証明書(.cerまたはpem)と秘密キー(.crt)の2つのファイルがありますが、IISは.pfxファイルのみを受け入れます。
私は明らかに証明書をインストールし、それは証明書マネージャー(mmc)で利用可能ですが、証明書のエクスポートウィザードを選択すると、PFX形式を選択できません(グレー表示されます)。
それを行うためのツールまたはそれをプログラムで行うC#の例はありますか?
IISのWebサイトにhttpsをインストールするには、.pfxファイルが必要です。
証明書(.cerまたはpem)と秘密キー(.crt)の2つのファイルがありますが、IISは.pfxファイルのみを受け入れます。
私は明らかに証明書をインストールし、それは証明書マネージャー(mmc)で利用可能ですが、証明書のエクスポートウィザードを選択すると、PFX形式を選択できません(グレー表示されます)。
それを行うためのツールまたはそれをプログラムで行うC#の例はありますか?
回答:
opensslを使用する必要があります。
openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt
キーファイルは、秘密キーが含まれているテキストファイルです。
あなたは、ルートCAと中間本命を持っている場合は、ほかの複数使用としてそれらを含める-in
のparamsを
openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt -in intermediate.crt -in rootca.crt
ここからopensslをインストールできます:openssl
openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt -in intermediate.crt -in rootca.crt
-certfile intermediate.crt -certfile rootca.crt
させるために.pfx
、パスフレーズ/パスワードでを保護するように求められる前に、指定する必要がありました。これは.key
、が追加-in
ファイルと一致せず、「証明書が秘密鍵と一致しません」というエラーメッセージが表示されたためと考えられます。
Microsoft Pvk2Pfxコマンドラインユーティリティには、必要な機能があるようです。
Pvk2Pfx(Pvk2Pfx.exe)は、.spc、.cer、および.pvkファイルに含まれる公開キーと秘密キーの情報をPersonal Information Exchange(.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としてエクスポートできました。
DigiCertUtil.exe
実行可能ファイルのルートディレクトリに秘密キーを含めることを忘れないでください。最も簡単なのは、それを証明書フォルダにコピーすることです。
opensslやmakecertなどは必要ありません。また、CAから提供された個人キーは必要ありません。問題は、CAから提供されたキーとcerファイルを使用できることを期待していることはほぼ保証できますが、それらは「IIS方式」に基づいていません。私はここで悪い情報や難しい情報を見るのにうんざりしているので、件名と解決策をブログに書くことにしました。何が起こっているのかを理解し、それがどれほど簡単かを見ると、私を抱きしめたくなるでしょう:)
PFXを使用したIISのSSL証明書(すべて)-SSLおよびIISの説明-http://rainabba.blogspot.com/2014/03/ssl-certs-for-iis-with-pfx-once-and-for.html
IISの「サーバー証明書」UIを使用して「証明書要求を生成」します(この要求の詳細はこの記事の範囲外ですが、それらの詳細は重要です)。これにより、IIS用に準備されたCSRが提供されます。次に、そのCSRをCAに渡し、証明書を要求します。次に、CER / CRTファイルを受け取り、IISに戻り、リクエストを生成したのと同じ場所で「証明書リクエストを完了」します。.CERを要求する場合があり、.CRTがある場合があります。彼らは同じものです。拡張子を変更するか、。.CRTを選択するための拡張子ドロップダウン。ここで、適切な「フレンドリ名」(* .yourdomain.com、yourdomain.com、foo.yourdomain.comなど)を入力します。これは重要です!これは、CSRの設定対象とCAから提供されたものと一致する必要があります。ワイルドカードを要求した場合、CAはワイルドカードを承認および生成している必要があり、ワイルドカードを使用する必要があります。CSRがfoo.yourdomain.comに対して生成された場合は、このステップで同じものを提供する必要があります。
.keyファイルと.pemファイルから.pfxファイルを作成しました。
このような openssl pkcs12 -inkey rootCA.key -in rootCA.pem -export -out rootCA.pfx
-export
スイッチは必要ありませんでした。
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ファイルに割り当てるパスワードです。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
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/
私はあなたの要件とのリンクを得ました。OpenSSLを使用してCRTファイルとKEYファイルをPFXに結合する
上記のリンクからの抜粋:
最初に既存の.crtファイルからルートCA証明書を抽出する必要があります。これは後で必要になるためです。.crtを開き、[証明のパス]タブをクリックします。
一番上の証明書(この場合はVeriSign)をクリックし、[証明書の表示]をクリックします。[詳細]タブを選択し、[ファイルにコピー]をクリックします…
Base-64エンコードされたX.509(.CER)証明書を選択します。それをrootca.cerまたは同様のものとして保存します。他のファイルと同じフォルダに配置します。
rootca.cerからrootca.crtに名前を変更します。フォルダーに3つのファイルがあり、そこからPFXファイルを作成できます。
ここでOpenSSLが必要です。Windowsにダウンロードしてインストールするか、OSXでターミナルを開くだけです。
編集:
インストールが成功したら、証明書をエクスポートし、.pfx
形式を選択し、秘密鍵を含めます。
重要な注意: .pfx形式で証明書をエクスポートするには、証明書を要求したのと同じマシンで手順を実行する必要があります。
インポートされたファイルはサーバーにアップロードできます。
これは、*。cerを* .pfxファイルに変換する最も簡単な方法です。
DigiCertからポータブル証明書コンバータをダウンロードするだけです:https ://www.digicert.com/util/pfx-certificate-management-utility-import-export-instructions.htm
それを実行し、ファイルを選択して* .pfxを取得します!!
証明書がMMCで利用可能であると言うとき、「現在のユーザー」または「ローカルコンピューター」で利用できますか?ローカルコンピューターの下にある場合にのみ秘密キーをエクスポートできることがわかりました。
証明書のスナップインをMMCに追加して、証明書を管理するアカウントを選択できます。ローカルコンピュータを選択します。証明書がそこにない場合は、ストアを右クリックし、[すべてのタスク]> [インポート]を選択してインポートします。
ローカルコンピューターバージョンの証明書スナップインでインポートした証明書に移動します。証明書を右クリックし、[すべてのタスク]> [エクスポート]を選択します。エクスポートウィザードの2ページ目で、秘密鍵をエクスポートするかどうかを尋ねるメッセージが表示されます。はいを選択します。これで、PFXオプションのみが使用可能になります([いいえ]を選択し、秘密キーをエクスポートするオプションが[現在のユーザー]アカウントで使用できない場合は、グレー表示されます)。
PFXファイルのパスワードを設定し、次に証明書名を設定するように求められます。
(@rainabbaが言ったように)IISを使用して新しいCSRを生成するのがおそらく最も簡単ですが、中間証明書があると仮定すると、そこにいくつかのオンラインコンバータがあります-たとえば、https: //www.sslshopper.com/ssl-converter。 html
これにより、別のプログラムをインストールしなくても、証明書と秘密キーからPFXを作成できます。
ほとんどの場合、証明書をPFX(秘密キーを含む)としてエクスポートできないのは、MMC / IISが秘密キー(CSRの生成に使用)を見つけられない、またはアクセスできないためです。これらは私がこの問題を修正するために従った手順です:
お役に立てれば!
これをインストールしたり、コマンドラインプログラムを追加したり、ダウンロードしたりすることについて、数人のユーザーが話していることを知っています...
個人的に私は怠惰で、これらすべてのメソッドが扱いにくくて遅いのがわかります。さらに、何もダウンロードしたくなくて、必要がない場合は正しいcmd行を見つけたくありません。
私の個人的なIISサーバーでの最善の方法は、RapidSSLOnlineを使用することです。これはサーバー上にあるツールであり、証明書と秘密キーをアップロードして、IISに直接インポートできるpfxファイルを生成できます。
リンクはこちら:https : //www.rapidsslonline.com/ssl-tools/ssl-converter.php
以下は、要求されたシナリオで使用される手順です。
- 現在のタイプを選択= PEM
- 変更= PFX
- 証明書をアップロード
- 秘密鍵をアップロードする
- ROOT CA証明書または中間証明書がある場合は、それらもアップロードします
- IISで使用される任意のパスワードを設定します
- reCaptchaをクリックして、ボットではないことを証明します
- 変換をクリックします
PFXをダウンロードして、IISのインポートプロセスで使用する必要があるのは、これで終わりです。
これが他の志を同じくする怠惰な技術者たちを助けることを願っています。
SSLForFreeのcfxファイルの場合、これはhttps://decoder.link/converterが最も簡単です。
PEM-> PKCS#12が選択されていることを確認し、証明書、ca_bundle、およびキーファイルをアップロードして変換します。パスワードを覚えてから、使用したパスワードを使用してアップロードし、バインディングを追加します。