ファイルを選択
  1. base64hub
  2. 鍵とハッシュ
  3. PEM を DER に変換

PEM を DER に変換(証明書と鍵)

PEM ブロックを貼り付けて .der ファイルをダウンロードするか、コードや設定ファイル用に DER を 1 行の Base64 か16進数でコピーできます。

無料 登録不要・制限なし ローカル アップロードなし 3 種類の出力 .der ファイル、1 行の Base64、16進数 更新日 2026/10/27
入力 –DER –出力 –

ブラウザ内で処理されます。このページがデータをどこかに送信することはできません – その根拠

PEM を DER に変換する方法

  1. 入力欄に PEM ブロックを貼り付けるか、.pem、.crt、.key、.csr ファイルをドロップします。
  2. 変換先 で出力を選びます。
    • DER:1 行の Base64:ヘッダー行と改行を除いた PEM の本体で、JSON のフィールドや環境変数にそのまま使えます。
    • DER:16進数:同じバイト列を16進数で表したもので、バイト配列やプロトコルのトレースに使います。
    • PEM(64 桁) と 公開鍵(PEM) は、逆方向の変換と公開鍵の取り出し用です。
  3. バイナリのファイルを保存するには .der をダウンロード を、テキスト形式なら 出力をコピー をクリックします。

変換ツールは証明書、CSR、CRL、公開鍵、秘密鍵(PKCS#1、PKCS#8、SEC1 EC)を自動で判別するので、入力の種類を選ぶ必要はありません。

変換で行われること

PEM は DER をテキストで包んだものです。次の証明書(省略しています)を例にします。

-----BEGIN CERTIFICATE-----
MIIBtzCCAV2gAwIBAgIUfX6gOa1S96OttEsj3WbuIdu0cE0wCgYIKoZIzj0EAwIw
...
-----END CERTIFICATE-----

2 行のマーカー行を取り除き、残りの行をつなげて Base64 デコードすれば、DER ファイルになります。この例では、ASN.1 の SEQUENCE ヘッダーである 30 82 01 b7 で始まる 443 バイトです。失われる情報は、マーカー行にあるラベルだけです。DER ファイルにはラベルがないので、DER を読むツールは、ファイルが何であるかを指定してもらうか、構造から推測する必要があります。

形式この証明書のサイズ使われる場所
PEM656 バイトnginx、Apache、HAProxy、ほとんどの Linux ツール
1 行の Base64 DER592 文字JSON API、JWK の x5c 配列、環境変数
DER(バイナリ)443 バイトJava や Windows のツール、ファームウェア、application/pkix-cert のダウンロード

DER が必要な場面

  • 組み込み機器とファームウェア:バイト配列として C にコンパイルされる証明書は、ほぼ必ず DER です。16進数の出力を使って配列に貼り付けてください。
  • Apple のプラットフォーム:SecCertificateCreateWithData は PEM のテキストではなく DER のデータを受け取ります。
  • JWK の x5c パラメーター や SAML メタデータの <ds:X509Certificate> 要素には、PEM のヘッダーなしの Base64 DER が入ります。
  • 証明書の CA Issuers の URL は、通常 DER の .cer ファイルを配信します。
  • Windows:.cer ファイルはどちらの形式もありえますが、古いインポートダイアログやアプライアンスの中には DER しか受け付けないものがあります。

OpenSSL、Python、certutil で PEM を DER に変換する

openssl x509 -in cert.pem -outform der -out cert.der
openssl req  -in app.csr  -outform der -out app.der
openssl pkey -in key.pem  -outform der -out key.der
grep -v -- '-----' cert.pem | tr -d '\n'

最後の行は、証明書が 1 つだけのファイルの 1 行の Base64 DER を出力します。Python では、ssl.PEM_cert_to_DER_cert(open("cert.pem").read()) が証明書の DER のバイト列を返します。Windows では、certutil -decode cert.pem cert.der がマーカーを取り除いてデコードします。詳しくは OpenSSL での Base64 と Python の Base64 をご覧ください。

よくある問題

  • 1 つのファイルに複数のブロックがある:テキストの出力ではすべてのブロックが変換されますが、DER ファイルはちょうど 1 つのオブジェクトしか持てないため、.der をダウンロード で保存されるのは最初のオブジェクトだけです。先にチェーンを分割するか、証明書デコーダー で証明書ごとのカードからダウンロードしてください。
  • -----BEGIN ENCRYPTED PRIVATE KEY-----:変換はできますが、DER も暗号化されたままです。復号にはパスワードが必要で、ここでは行いません。
  • Proc-Type: 4,ENCRYPTED ヘッダー:OpenSSL の従来の暗号化には DER の形式がありません。先にパスワードを使って openssl pkey -in key.pem -out plain.pem を実行してください。
  • -----BEGIN OPENSSH PRIVATE KEY-----:そもそも ASN.1 ではないので、生成できる DER はありません。公開鍵については SSH 鍵ツール を使ってください。

よくある質問

PEM は DER を Base64 にしただけのものですか?

そうです。PEM ファイルは、DER のバイト列を Base64 でエンコードして 64 文字で折り返し、-----BEGIN label----- と -----END label----- の行で挟んだものです。その行を取り除いて Base64 をデコードすれば、DER ファイルがそのまま得られます。

PEM の秘密鍵を DER に変換するには?

ここに貼り付けて DER:1 行の Base64 か .der をダウンロード を選ぶか、openssl pkey -in key.pem -outform der -out key.der を実行します。鍵がページの外に出ることはなく、秘密の値も表示されません。

DER ファイルが PEM より小さいのはなぜですか?

Base64 は 3 バイトごとに 4 文字にし、PEM はさらに改行と 2 行のヘッダーを加えるからです。443 バイトの DER 証明書は 656 バイトの PEM ファイルになり、約 48% 大きくなります。