.pem
、.cer
との違いは何.der
ですか?
私の知る限り、.cer
公開鍵が含まれています。この公開鍵を使用してデータを暗号化するために使用できるオープンフレームワークはありますか?
.pem
、.cer
との違いは何.der
ですか?
私の知る限り、.cer
公開鍵が含まれています。この公開鍵を使用してデータを暗号化するために使用できるオープンフレームワークはありますか?
cp
場合、コマンドで実行できます:)
回答:
.pem
、.cer
および.der
はすべて、X.509v3証明書を含む可能性のあるファイルのファイル拡張子です。
.der
拡張DERは、証明書を構成するデータをエンコードする方法です。DER自体はあらゆる種類のデータを表すことができますが、通常はエンコードされた証明書またはCMSコンテナを記述します。
証明書の構造は、ASN.1データ表現言語を使用して記述されます。BERとDERは、ASN.1で記述されたデータのバイナリエンコード方式です。
.pem
拡張PEMは、バイナリデータを文字列(ASCIIアーマー)としてエンコードする方法です。ヘッダーとフッターの行(エンコードされるデータのタイプを指定し、データがチェーンされている場合は開始/終了を示します)が含まれ、中央のデータはbase64データです。証明書をエンコードする場合は、DER証明書のbase64エンコードが含まれているだけです。PEMはPrivacyEnhancedMailの略です。メールには、DERなどのエンコードされていないバイナリ値を直接含めることはできません。
PEMは、公開鍵/秘密鍵、証明書要求など、証明書に関連する他の種類のデータをエンコード/保護する場合もあります。コンテンツが一般的なX509v3証明書の場合、PEMは次のようにエンコードされます。
-----BEGIN CERTIFICATE-----
... base 64 encoding of the DER encoded certificate
with line endings and padding with equals signs ...
-----END CERTIFICATE-----
PEMファイルには、完全な証明書チェーンが含まれている場合もあります。チェーンは、サービスのリーフ/エンド証明書で始まり、それに署名した証明書が続きます。通常は、信頼されたルート証明書までです。したがって、証明書が不足している場合は、最初の証明書の背後を確認することをお勧めします。
.cer
または.crt
拡張.cer
単に証明書の略です。通常はDERでエンコードされたデータですが、WindowsはPEMでエンコードされたデータも受け入れる場合があります。file
100%確実であるためには、ファイル内に何があるかを確認するために、コンテンツを調べる必要があります(たとえば、posixシステムでユーティリティを使用する)。
OpenSSLでサポートされているもののより広範なリストについては、この回答を参照してください。
証明書に含まれている(および証明書の署名によって署名されている)公開鍵を使用するには、X.509証明書を解析してRSA暗号化を実行するライブラリを使用する必要があります。PEMエンコーディングを検出/処理するツールを使用するか、最初にPEMエンコーディングを取り除いて証明書をDERに変換することができます。
OpenSSLコマンドラインには、PEMとDERの間で変換したり、高レベルの証明書情報を印刷したり、ASN.1を解析して、そこにあるものの低レベルのビューを取得したりするための多くのオプションが含まれています。
ほとんどのASN.1構造と同様に、DERでエンコードされた証明書は、常に30
ASN.1のタグエンコードであるバイトで始まりSEQUENCE
ます。ファイルに多くの繰り返しが見られる場合は、これで問題ありません。厳密に定義されているのは構造だけです。
同様に、PEMエンコードされたファイル内のベース64は、常に文字で始まるM
ASN.1としてSEQUENCE
バイトから始まり30
、第1の6ビットが001100
、文字のインデックスであり、数12に変換されM
、アルファベットの13番目の文字。