ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
要点
- PEM (Privacy-Enhanced Mail) は、X.509 証明書や秘密鍵などを Base64 テキストで表現する汎用フォーマット。
- ファイルの中身は
-----BEGIN CERTIFICATE-----〜-----END CERTIFICATE-----のように、ヘッダ行とフッタ行で囲まれている。 - 1 ファイルに 複数の証明書を連結でき、証明書チェーン (サーバ証明書 + 中間 CA + ルート CA) の配布に便利。
- 拡張子は
.pemのほか.crt/.cer/.keyでも実体が PEM のことが多い。
概要
PEM は元々 1993 年の RFC 1421〜1424 で定義された電子メール暗号化規格に由来するフォーマットで、現在はメール用途よりも TLS / SSL 証明書、SSH 鍵、CSR (証明書署名要求)、秘密鍵の保存形式として広く使われている。バイナリ DER データを Base64 にエンコードし、その前後を -----BEGIN X----- / -----END X----- という ASCII 行で挟むだけのシンプルな構造で、人間がエディタで開いても文字化けせず、メールやチケットに貼り付けて受け渡せる点が大きな利点である。
HTTPS サーバ (Apache / nginx)、Postfix / Dovecot、HAProxy、curl、OpenSSL、Python requests、Java keytool (importcert) など、ほぼあらゆる暗号関連ソフトが入出力対応している事実上の標準形式といえる。
内部構造
PEM ファイルは「ラベル行 + Base64 本体 + ラベル行」の繰り返しで構成される。代表的なラベルには以下がある。
CERTIFICATE: X.509 証明書PRIVATE KEY/RSA PRIVATE KEY/EC PRIVATE KEY: 秘密鍵PUBLIC KEY: 公開鍵CERTIFICATE REQUEST: CSRDH PARAMETERS: DH パラメータX509 CRL: 失効リスト
Base64 本体は 1 行 64 文字に折り返されるのが伝統的なスタイル。中身を Base64 デコードすると DER (ASN.1 バイナリ) が現れる、つまり「PEM = Base64(DER) + ラベル行」という関係である。
-----BEGIN CERTIFICATE-----
MIIDdzCCAl+gAwIBAgIEbW9rdTANBgkqhkiG9w0BAQsFADBfMQswCQYDVQQGEwJK
... (Base64 が続く) ...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIID... (中間 CA など、連結して書ける)
-----END CERTIFICATE-----
主な用途
- HTTPS サーバ証明書の配置: nginx の
ssl_certificate、Apache のSSLCertificateFileはいずれも PEM。 - 証明書チェーンの配布: 1 つの
fullchain.pemにサーバ証明書 + 中間 CA を連結 (Let's Encrypt の標準スタイル)。 - クライアント証明書認証: curl の
--cert/--keyや requests のcert=引数に PEM パスを渡す。 - SSH 公開鍵 / 秘密鍵: OpenSSH も内部表現は PEM 派生 (BEGIN OPENSSH PRIVATE KEY ラベル)。
関連形式との比較
- DER: PEM をデコードしたバイナリそのもの。サイズはやや小さいが目視不可。Java や Windows 一部 API が直接読む。
- PFX / P12: 証明書 + 秘密鍵をパスワード暗号化して 1 ファイル化。Windows / IIS / Authenticode 系で多用。PEM はパスワード保護なし or PEM 内
ENCRYPTED PRIVATE KEYで保護。 - JKS / PKCS12 (Java): Java 専用キーストア。
keytoolで PEM からインポート可能。
コマンド・ツール
# 証明書の内容を人間可読に表示
openssl x509 -in cert.pem -noout -text
# PEM → DER
openssl x509 -in cert.pem -outform der -out cert.der
# DER → PEM
openssl x509 -inform der -in cert.der -out cert.pem
# fullchain (サーバ + 中間) を連結
cat server.pem intermediate.pem > fullchain.pem
# 有効期限だけ確認
openssl x509 -in cert.pem -noout -enddate
# 秘密鍵と証明書の一致確認 (modulus 比較)
openssl x509 -in cert.pem -noout -modulus | openssl md5
openssl rsa -in key.pem -noout -modulus | openssl md5
Wireshark や Apache mod_ssl もデバッグログに PEM ブロックを書き出すことがあり、テキストでそのまま扱えるのは運用上きわめて便利。
注意点
- 秘密鍵を含む PEM の取り扱い:
BEGIN PRIVATE KEYを含むファイルは平文の鍵そのもの。Git にコミットしない、chmod 600必須。 - 改行コード: CRLF と LF の混在で一部 (古い) ツールがエラーを出す。Unix 環境では LF に統一する。
- ファイル末尾の改行: 最終
-----END-----行の後に改行が無いと一部ライブラリがパース失敗する。 - チェーン順序: 多くのサーバは「サーバ証明書 → 中間 CA → (ルート)」順を期待。逆順だとブラウザでチェーン不完全になる。
- パスフレーズ保護鍵:
BEGIN ENCRYPTED PRIVATE KEYは起動時にパスフレーズ要求が必要。自動起動サービスでは別の鍵管理 (Vault, KMS) を推奨。
関連リンク
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?