.pfx(個人情報交換)ファイルを.cer(セキュリティ証明書)ファイルに変換できますか?誤解しない限り、.cerは.pfxの中に埋め込まれているのではないですか?可能であれば、何らかの方法で抽出したいのですが。
.pfx(個人情報交換)ファイルを.cer(セキュリティ証明書)ファイルに変換できますか?誤解しない限り、.cerは.pfxの中に埋め込まれているのではないですか?可能であれば、何らかの方法で抽出したいのですが。
回答:
私が信じる最も簡単な方法は、Windows管理コンソールの証明書マネージャーを使用して、インポートしてからエクスポートすることです。
PFXファイルは、PKCS#12 Personal Information Exchange Syntax Standardバンドルです。X.509証明書と認証局チェーン(証明書のセット)が付随する任意の数の秘密鍵を含めることができます。
クライアント証明書を抽出する場合は、OpenSSLのPKCS12ツールを使用できます。
openssl pkcs12 -in input.pfx -out mycerts.crt -nokeys -clcerts
上記のコマンドは、PEM形式で証明書を出力します。「.crt」ファイル拡張子は、macOSとWindowの両方で処理されます。
DERでエンコードされたファイルに従来から使用されている「.cer」拡張子について質問します。バイナリエンコーディング。最初に「.crt」ファイルを試してください。受け入れられない場合は、PEMからDERに簡単に変換できます。
openssl x509 -inform pem -in mycerts.crt -outform der -out mycerts.cer
PowerShellで作業している場合、pfxファイルInputBundle.pfxを指定して、次のようなものを使用して、DERエンコードされた(バイナリ)証明書ファイルOutputCert.derを生成できます。
Get-PfxCertificate -FilePath InputBundle.pfx |
Export-Certificate -FilePath OutputCert.der -Type CERT
わかりやすくするために改行が追加されていますが、もちろんこれをすべて1行で記述できます。
ASCII / Base64でエンコードされたPEM形式の証明書が必要な場合は、https://superuser.com/questions/351548/windows-integrated-utility-to-convertなどの別の場所に記載されているように、追加の手順を実行できます。 -der-to-pem
DERエンコードとは異なるフォーマットにエクスポートする必要がある場合は-Type
、Export-Certificateのパラメーターを変更して、.NETでサポートされているタイプを使用できますhelp Export-Certificate -Detailed
。
-Type <CertType>
Specifies the type of output file for the certificate export as follows.
-- SST: A Microsoft serialized certificate store (.sst) file format which can contain one or more certificates. This is the default value for multiple certificates.
-- CERT: A .cer file format which contains a single DER-encoded certificate. This is the default value for one certificate.
-- P7B: A PKCS#7 file format which can contain one or more certificates.
最も簡単だと思うメソッドを追加したかったのです。
pfxファイルを右クリックし、ウィザードに従って[インストール]をクリックし、ストアに追加します(個人ストアに追加しました)。
スタートメニューで「certmgr.msc」と入力し、CertManagerプログラムに移動します。
PFX証明書を見つけ(上部のタブはさまざまなストアです)、[エクスポート]ボタンをクリックしてウィザードに従います(.CERとしてエクスポートするオプションがあります)。
基本的に、Andrewの回答と同じことを行いますが、Windows管理コンソールの使用を回避します(インポート/エクスポートに直接移動します)。