(makecert で -pe オプションを使用して) 秘密鍵をエクスポート可能にすると、理論的には、エクスポート可能な秘密鍵と公開鍵 (証明書の公開鍵) の両方が得られます。これらは別のマシンに転送またはインポートできます。
それで、私の質問は、.pfx ファイル (秘密鍵と公開鍵を含む鍵交換ファイル) を作成する必要があるのはなぜですか? 秘密鍵を証明書でエクスポート可能にすることで達成できなかった、pfx ファイルがカバーできるシナリオはありますか?
前もって感謝します、ジョージ
(makecert で -pe オプションを使用して) 秘密鍵をエクスポート可能にすると、理論的には、エクスポート可能な秘密鍵と公開鍵 (証明書の公開鍵) の両方が得られます。これらは別のマシンに転送またはインポートできます。
それで、私の質問は、.pfx ファイル (秘密鍵と公開鍵を含む鍵交換ファイル) を作成する必要があるのはなぜですか? 秘密鍵を証明書でエクスポート可能にすることで達成できなかった、pfx ファイルがカバーできるシナリオはありますか?
前もって感謝します、ジョージ
秘密鍵を含む証明書ファイルを生成する makecert コマンド ラインは見つかりましたか? 私は決して持っていません。.pfx ファイルを生成できる makecert のバージョンがあるという事実を誰かがほのめかしているのを見たことがありますが、それを見たこともありません。
つまり、秘密鍵ファイルが必要な場合は、せいぜい makecert で 2 つのファイルを作成できます。1 つは証明書用、もう 1 つは秘密鍵用です。これらのファイルは両方とも別のコンピューターにコピーし、makecert を使用してインポートできます。
.pfx 証明書形式の利点は、証明書と秘密キーを含む 2 つのファイルを 1 つに結合できることです。これはより便利で、SslStream で使用するために .Net X509Certificate2 クラスでファイルを使用できることも意味します。
pfx ファイルはパスワードで保護できます。これにより、保護レイヤーが追加されます。
問題は、X509 証明書標準(証明書) に秘密鍵が含まれていないことです。証明書には、サブジェクトの公開鍵情報 (別名、公開鍵) と秘密鍵の所有者に関する情報が含まれていますが、標準では秘密鍵を含めることはサポートされていません。これが PKI の基本的な考え方です。証明書は世界と共有する公開情報であり、秘密鍵は非常に安全に保持するものです。
秘密鍵を任意のメカニズム (makecert など) でエクスポート可能にするということは、その製品に鍵をエクスポートできることを伝えることを意味します。保存に使用するファイル形式は指定されていません。pfx ファイルは、秘密鍵を格納する 1 つの方法であり、PKCS 12 標準を使用します。Java キー ストア (*.jks) は、同じことを行う別の方法です。商業的にサポートされているほとんどの標準には、同様の共通機能があります。これらの標準は、秘密鍵を暗号化することで保護します。暗号化は、パスワードを使用してロックを解除できます。彼らは秘密鍵をそれを記述する証明書と結合します。
PFX ファイルを作成する場合は、makecert コマンドを使用して生成できる x509 証明書の公開鍵と秘密鍵ファイルの両方が必要です。PFX は、Microsoft SDK のインストール ディレクトリにある PVk2PFX コマンドを使用して生成できます。