1️⃣ PEM 形式とは何ですか?
PEM (Privacy-Enhanced Mail) は、キーと証明書の保存と転送に使用されるテキスト形式です。バイナリ DER データを Base64 エンコードし、 -----BEGIN および -----END のようなヘッダーとフッターでラップします。一般的なラベルには、 PUBLIC KEY 、 PRIVATE KEY 、および CERTIFICATE が含まれます。テキストベースのワークフローでのコピー、貼り付け、送信が簡単で、最も一般的な鍵交換形式の 1 つです。
2️⃣ PEM 以外に一般的な形式は何ですか?
- DER : ASN.1 構造を直接保存する純粋なバイナリ形式。これは人間が判読できるものではなく、Java エコシステムでは一般的です。
- HEX : DER バイナリ コンテンツを 16 進文字列として表現します。デバッグやコードへの埋め込みに役立ちます。
- Base64 (ヘッダーなし) : PEM ヘッダーなしで Base64 としてエンコードされた生の DER。コンパクトな構成またはトークン ペイロードでよく使用されます。
- PKCS#12 (PFX) : 公開キーと秘密キーをバンドルできるバイナリ コンテナ形式。通常はパスワードで保護され、ブラウザや Windows システムでよく使用されます。
3️⃣ 各形式はいつ使用する必要がありますか?
- PEM : OpenSSL、Web サーバー (Nginx/Apache)、および API 交換に適した最も汎用的なオプション。
- DER : Java 環境または厳密なバイナリ ストレージが必要な場合によく使用されます。
- HEX : デバッグ、組み込みシステム、または正確なバイト検査が必要な場合に役立ちます。
- Base64 (ヘッダーなし) : 書式設定が制約されている場合、またはコンパクトな表現が必要な場合に便利です。
- PKCS#12 : 秘密キーをパスワードで保護しながら、公開キーと秘密キーの両方を一緒に転送する必要がある場合に便利です。