[解決済み] .pem、.cer、.derの違いは何ですか?
質問
とはどのような違いがあるのでしょうか?
.pem
,
.cer
と
.der
?
私の知る限りでは
.cer
には公開鍵が含まれています。この公開鍵を使用してデータを暗号化するために使用できるオープンフレームワークはありますか?
どのように解決するのですか?
.pem
,
.cer
と
.der
はすべて、X.509 v3 証明書を含む可能性のあるファイルの拡張子です。
は
.der
エクステンション
DERは、証明書を構成するデータを符号化する方法です。DER自体は以下を表すことができます。 任意の のようなデータですが、通常はエンコードされた証明書やCMSコンテナを記述します。
証明書の構造は、ASN.1データ表現言語を用いて記述される。BERとDERは、ASN.1で記述されたデータのバイナリ符号化方式です。
は、その
.pem
エクステンション
PEMは、バイナリデータを文字列(ASCIIアーマー)としてエンコードする方法です。ヘッダーとフッター行(エンコードされるデータの種類を指定し、データが連結されている場合は開始/終了を示す)を含み、中間のデータがベース64データである。証明書をエンコードする場合は、単にDER証明書をbase64でエンコードしたものを格納することになる。PEMはPrivacy Enhanced Mailの略で、メールには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
ユーティリティを使用して、ファイル内の内容を確認することができます。
その他のOpenSSLフォーマット
を見てみましょう。 この回答 には、OpenSSLでサポートされているものについてのより広範なリストがあります。
公開鍵を使用する場合 含まれる 証明書に含まれる(そして によって署名された の場合、X.509証明書を解析し、RSA暗号化を実行する任意のライブラリを使用する必要があります。PEMエンコーディングを検出/処理するツールを使うか、PEMエンコーディングを除去して証明書をDERに変換してください。
OpenSSL のコマンドラインには、PEM と DER の変換、ハイレベルな証明書情報の出力、ASN.1 のパースによる中身の低レベルな表示など、多くのオプションが用意されています。
詳細
ほとんどのASN.1構造と同様に、DERエンコードされた証明書は常に1バイトで始まります。
30
これは、ASN.1 のタグエンコーディングです。
SEQUENCE
. もし、ファイル内で多くの繰り返しが見られるのであれば、これは問題ありません。
構造
が厳密に定義されています。
同様に、PEMエンコードされたファイル内のベース64は常に文字で始まります。
M
をASN.1として
SEQUENCE
はバイトで始まる
30
ということで、最初の6ビットは
001100
のインデックスである12という数字に変換されます。
M
アルファベットの13番目の文字である。
関連
-
[解決済み] JSEncryptの理解
-
[解決済み] AES暗号化 - 鍵とIVの比較
-
[解決済み] RSA公開鍵形式
-
[解決済み] .pem、.cer、.derの違いは何ですか?
-
[解決済み] PHPでパスワードをハッシュ化するためにbcryptを使用するにはどうすればよいですか?
-
[解決済み] AES暗号化モード(CBC ECB CTR OCB CFB)の選択方法は?
-
[解決済み] ハッシュ化アルゴリズムと暗号化アルゴリズムの根本的な違い
-
[解決済み] RSA秘密鍵を使って公開鍵を生成する?
-
[解決済み】ソフトウェアのライセンスキーはどのように生成されるのですか?
-
[解決済み] 複数キーによる暗号化・復号化
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン