<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">.pem</code></anchor></dfn> は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">秘密鍵</anchor>などの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗号化</anchor>に関わる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル</anchor>の交換・保存用のデータ形式です。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> <cite xml:lang="en-US">NSS Certificate Download Specification - Mozilla | MDN</cite> (<time>2014-05-07 16:41:21 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Certificate_Download_Specification">https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Certificate_Download_Specification</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</anchor-end> <cite xml:lang="en">RFC 7468 - Textual Encodings of PKIX, PKCS, and CMS Structures</cite> (<time>2015-04-20 12:22:43 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc7468">https://tools.ietf.org/html/rfc7468</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書ダウンロード</anchor>仕様書 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;42</anchor-internal></src> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>鎖に関する
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.pem</anchor></code> ファイル形式を定義しています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> それ以外の <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.pem</anchor></code> ファイル形式一般を規定した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>は長年存在していませんでしたが、
2015年に <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7468</anchor></dfn> として <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> で標準化されました。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> 歴史の項も参照。</comment-p></section><section><h1>構文</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.pem</anchor></code> 形式のファイルは、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII</anchor> 文字列で構成される<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テキストファイル</anchor>です。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非ASCII文字</anchor>が含まれる場合にどう解釈されるかは定かではありません。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="74" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[74]</anchor-end> <code xmlns="http://www.w3.org/1999/xhtml"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">report-uri</anchor></code> で指定された <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> に送信される <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSON</anchor>
では、 <code xmlns="http://www.w3.org/1999/xhtml"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.pem</anchor></code> 形式の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>が使われます。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.pem</anchor></code> 形式のファイルは、1つ以上の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>で構成されます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src>。</p><figure class="railroad"><ol><li>+<ol><li>?<ol><li>前書き</li></ol></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor></li></ol></li></ol></figure><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> 多くの場合は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>は1つだけですが、 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">certification path</anchor> を表す<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一連の証明書<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">証明書鎖</title></anchor>を表す場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ルート証明書として使われる証明書群<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">証明書データベース</title></anchor>を表す場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">秘密鍵</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>を含めた場合、
その他用途次第で複数の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>が含まれることがあります。
複数含まれる場合、用途により、順序が指定されることがあります。
例えば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">中間証明書</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ルート証明書</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">末端実体証明書</anchor>に近い順序に並べる必要があるかもしれません
(<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>証明書鎖</anchor> </sw-see>)。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[62]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>の前に他のデータがあっても構わず、構文解析器は無視しなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません</MUST> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>ではその意味は規定されていませんが、
補足説明などを入れるために使われているようです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="92" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[92]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>は複数あり得るので、その前に挿入できるということは、
実質上<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>の間に挿入できるということです。
しかし最後の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>の後には挿入できません。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pre-EB</anchor>、データ、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">post-EB</anchor> で構成されます。</p><figure class="railroad"><ol><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pre-EB</anchor></li><li>データ</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">post-EB</anchor></li></ol></figure><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenSSL</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EB</anchor> を header line、footer line とそれぞれ呼んでいるようです。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pre-EB</anchor> の前や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">post-EB</anchor> の後に何らかのデータがあっても、無視します <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;42</anchor-internal></src>。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pre-EB</anchor> は <code>-----BEGIN </code> の後にメッセージ種別が入り、
<code>-----</code> が続きます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src>。最後に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor>が入ります。</p><figure class="railroad"><ol><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">-----BEGIN </anchor></code></li><li>メッセージ種別</li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">-----</anchor></code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor></li></ol></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">post-EB</anchor> は <code>-----END </code> の後にメッセージ種別が入り、
<code>-----</code> が続きます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src>。最後に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor>が入ります。</p><figure class="railroad"><ol><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">-----END </anchor></code></li><li>メッセージ種別</li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">-----</anchor></code></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor></li></ol></figure><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <code xmlns="http://www.w3.org/1999/xhtml">BEGIN</code> と <code xmlns="http://www.w3.org/1999/xhtml">END</code> の後には <code xmlns="http://www.w3.org/1999/xhtml" class="char"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0020</anchor></code> が入ります。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[64]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pre-EB</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">post-EB</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ種別</anchor>は同じでなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src>。実装は違っていてもエラーとせず無視して構いません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="65" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[65]</anchor-end> 異なっていても扱える実装と、扱えない実装があります <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src>。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> 最後の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>の後には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor>がある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">べき</strong></anchor>です <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src>。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> データは、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オクテット列</anchor>を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>したものです。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> 版 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;21</anchor-internal></src> は1行を丁度64文字とすることを求めています。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7468</anchor> も64文字丁度の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4648</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</anchor> としなければ<MUST xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ならない</MUST>と規定しています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src>。
構文解析器は他の文字数でも扱えて構いません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> 最後の行は、64文字以下で構いません <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src>。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> すべての <code xmlns="http://www.w3.org/1999/xhtml"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.pem</anchor></code> ファイルがこれに従っているかは定かではありません。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> 元々の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> の暗号化メールでは、データの部分は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 822</anchor> 風の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空行</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">本体</anchor>で構成される<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>で、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</anchor> はそのうちの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">本体</anchor>の部分だけでした。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[78]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7468</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</anchor> 構文は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">詰め</anchor>の省略を認めていますが、
その意味と処理方法は説明されていません。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7468</anchor> の参照する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4648</anchor>
によると原則として<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">詰め</anchor>の省略は禁止されており、矛盾しています。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</anchor> も参照。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end> 構文解析器は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>その他 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</anchor> 以外の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>を無視する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">べきです</strong></anchor>。
行末の空白は、無視する実装が多いようです。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</anchor> の行頭や行内の空白は、
扱えない実装が多いようです。余分な空白を生成しては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor>は、 <sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CR</sw-cn>、<sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LF</sw-cn>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><sw-cn>CR</sw-cn><sw-cn>LF</sw-cn></anchor> のいずれかによって表されます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenSSH</anchor> は少なくても<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">秘密鍵</anchor> (<code>OPENSSH PRIVATE KEY</code>)
の扱いに関してかなり厳しく、 <sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CR</sw-cn> が入っているとエラーにします。
<sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LF</sw-cn> のみである必要があります。</p><figure class="railroad"><ol><li>|<ol><li><sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" xml:lang="en"><anchor>CR</anchor></sw-cn></li><li><sw-cn xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" xml:lang="en"><anchor>LF</anchor></sw-cn></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><sw-cn xml:lang="en">CR</sw-cn><sw-cn>LF</sw-cn></anchor></li></ol></li></ol></figure><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> 構文的に正しくないファイルを与えられた時どう解釈するのかは定かではありません。</comment-p></section><section><h1>メッセージ種別</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ種別</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7468</anchor> のいう<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ラベル<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">label</rt></rubyb></dfn>) には、次のものがあります。</p><figure class="list"><ul><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CERTIFICATE</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DER</anchor>) <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;42</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CERTIFICATE</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PKCS #7証明書鎖</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;42</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;29</anchor-internal></src></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CERTIFICATE</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Netscape Certificate Sequence</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;42</anchor-internal></src></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">X509 CERTIFICATE</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">X.509 CERTIFICATE</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TRUSTED CERTIFICATE</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PKCS7</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PKCS #7</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;29</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CERTIFICATE CHAIN</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PKCS #7証明書鎖</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src></li><li><code>PKCS7 CERTIFICATE CHAIN</code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PKCS #7証明書鎖</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="79" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;79</anchor-internal></src></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CMS</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CMS</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RSA PRIVATE KEY</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RSA</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">秘密鍵</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PKCS #1</anchor>) <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;30</anchor-internal></src></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RSA PUBLIC KEY</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RSA</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">公開鍵</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PKCS #1</anchor>) <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;30</anchor-internal></src></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DSA PRIVATE KEY</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DSA</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">秘密鍵</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;35</anchor-internal></src></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PRIVATE KEY</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">秘密鍵</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PKCS #8</anchor>) <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PUBLIC KEY</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">公開鍵</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;30</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ENCRYPTED PRIVATE KEY</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗号化</anchor>された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">秘密鍵</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PKCS #8</anchor>) <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CERTIFICATE REQUEST</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSR</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PKCS #10</anchor>) <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NEW CERTIFICATE REQUEST</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSR</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PKCS #10</anchor>) <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src></li><li><code>NETSCAPE CERTIFICATE SEQUENCE</code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Netscape Certificate Sequence</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="79" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;79</anchor-internal></src></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">X509 CRL</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CRL</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CRL</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CRL</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ATTRIBUTE CERTIFICATE</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性証明書</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EC PARAMETERS</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">楕円曲線</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="75" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;75</anchor-internal></src></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DH PARAMETERS</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DH</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="76" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;76</anchor-internal></src></li><li><code>ED25519 PRIVATE KEY</code></li><li><code>OPENSSH PRIVATE KEY</code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SSH</anchor></li></ul></figure></section><section><h1>類似ファイル形式</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4716</anchor> のファイル形式と似ていますが、微妙に違います。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> <cite xml:lang="en">RFC 4716 - The Secure Shell (SSH) Public Key File Format</cite> (<time>2015-02-08 18:20:33 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc4716">https://tools.ietf.org/html/rfc4716</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenPGP</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII Armor</anchor> とも似ていますが、そちらは元の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor>
の形式により似ています (微妙に違います)。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SSH</anchor> クライアントはこれらのいずれとも微妙に違った、本項の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor>
形式に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 822</anchor> 風ヘッダーを足した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">秘密鍵</anchor>ファイル <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;58</anchor-internal></src> を使うことがあります。
(本項の形式を使うこともあります。)
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4716</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SSH</anchor> 用として更に微妙に異なる構文を規定しています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="97" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[97]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SSH</anchor> 用のファイル形式もまた <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> 形式と呼ばれているようです。
ややこしいことに <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SSH</anchor> が使うファイル形式も実装の世代によって
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ種別</anchor> (やそれによって表される内容) の違いがあって互換性の問題が生じていて、
(新旧どちらも「PEM 形式」であるにも関わらず) 一方が 
「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor>形式」と呼ばれることがあるようです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="98" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[98]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SSH</anchor> 用ファイル形式は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 822</anchor> ヘッダーが1個もないと、
通常の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> 形式になります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="77" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[77]</anchor-end> これらのファイル形式は、おそらくは大元は共通なのでしょうが、
他のファイル形式を参考に自身の用途に移植して実装した時に、
それぞれの思惑で少しずつ違いが生じたのでしょう。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="99" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[99]</anchor-end> 
まあそもそもどのファイル形式も本家の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> とは関係ないので、
どれを <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> と呼んでも別にいい (どれも等しく俗称) だったのでしょう。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="100" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[100]</anchor-end> すると混乱極まった後に遅れて一部の形式だけを<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">標準化</anchor>する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor>
を出した <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> は混乱をややこしくする形で固定化してしまったわけです。
俗称の一部分にだけお墨付きを出して残りは放置なのですから。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> 類似ファイル形式 (元の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;37</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;38</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;40</anchor-internal>) で使われるメッセージ種別相当の文字列には次のものがあります。<figure class="list"><ul><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PRIVACY-ENHANCED MESSAGE</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗号化</anchor>メールの「内側」</li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PGP MESSAGE</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenPGP</anchor></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PGP PUBLIC KEY BLOCK</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenPGP</anchor></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PGP PRIVATE KEY BLOCK</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenPGP</anchor></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PGP MESSAGE, PART <var xmlns="http://www.w3.org/1999/xhtml">X</var>/<var xmlns="http://www.w3.org/1999/xhtml">Y</var></anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenPGP</anchor></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PGP MESSAGE, PART <var xmlns="http://www.w3.org/1999/xhtml">X</var></anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenPGP</anchor></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PGP SIGNATURE</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenPGP</anchor></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SSH2 PUBLIC KEY</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SSH</anchor></li><li><code>RSA PRIVATE KEY</code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RSA</anchor></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DSA PRIVATE KEY</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SSH</anchor></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SSH2 ENCRYPTED PRIVATE KEY</anchor></code> - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SSH</anchor></li><li><code>ED25519 PRIVATE KEY</code></li></ul></figure></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="101" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[101]</anchor-end> 狭義 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> で使われるものと共通しているものもいくつかあります。
「どちらの形式でも使われる」
というよりは、
元々広義 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> で使われていたのが狭義 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> とそれ以外とで分断された見え方に
(今では) なっているというだけのことなのでしょう。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="96" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[96]</anchor-end> <code xmlns="http://www.w3.org/1999/xhtml">ssh-keygen</code> が生成する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">秘密鍵</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> 形式ないしそれに類似する形式ですが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">公開鍵</anchor>はまた別の形式です。</comment-p></section><section><h1>処理</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.pem</anchor></code> ファイルとして構文解析して <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>されたバイナリーデータを取り出した後の処理方法は、
利用する場面によって異なります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.pem</anchor></code> ファイルの内容が意図したものと異なる場合もあります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EB</anchor> の記述が想定と異なる場合もありますし、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EB</anchor> の記述と実際の内容が異なる場合もあります。
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.pem</anchor></code> ファイルを送信したプロトコルにおける <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor>と内容が異なる場合もあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[66]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EB</anchor> の記述と実際の内容が異なる場合でも、構文解析器は<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">華麗<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">gracefully</rt></rubyb>に処理できなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。実際の内容に従い処理しても構いませんが、
セキュリティー上問題ないか注意する必要があります。既存の実装がどう処理するかは、
それぞれです。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ダウンロード</anchor>した場合の処理は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書ダウンロード</anchor>を参照。</p></section><section><h1>MIME 型</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor>としては <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/x-pem-file</anchor></code> が使われます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> 内容により異なる <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME型</anchor>が使われることもあります。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>証明書ダウンロード</anchor>, <code xmlns="http://www.w3.org/1999/xhtml" class="MIME" xml:lang="en">application/pem-certificate-chain</code> </sw-see></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> 
意味的には <code xmlns="http://www.w3.org/1999/xhtml">+pem</code> としても良さそうなものですが (<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>構造化構文接尾辞</anchor> </sw-see>)、
実際には使われていないようです。</comment-p></section><section><h1>拡張子</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> 一般には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拡張子</anchor> <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.pem</anchor></code> が使われます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> 内容により <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.cer</anchor></code>、<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.csr</anchor></code>、<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.key</anchor></code>
などが用いられることもあります
(それぞれ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSR</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鍵</anchor>)。
これらは <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.pem</anchor></code> 形式でない元のバイナリーファイルでも使われることがあり、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拡張子</anchor>だけではファイル形式を判定できません。</p></section><section><h1>メッセージ種別 <code>CERTIFICATE</code></h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[67]</anchor-end> ラベル <dfn><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CERTIFICATE</anchor></code></dfn> は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">公開鍵</anchor><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>に用いられます
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="68" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[68]</anchor-end> データは、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASN.1</anchor> <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Certificate</anchor></code> です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BER</anchor> でなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DER</anchor>
が<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非常に好ましい<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">strongly preferred</rt></rubyb>です。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="69" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[69]</anchor-end> 実際には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">X.509</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>の他に、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PKCS #7証明書鎖</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;42</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;29</anchor-internal></src> や
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Netscape Certificate Sequence</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;42</anchor-internal></src>
にもラベル <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CERTIFICATE</anchor></code> が使われることがあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="70" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[70]</anchor-end> また <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">X.509</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>を表すためにラベルとして <dfn><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">X509 CERTIFICATE</anchor></code></dfn>
や <dfn><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">X.509 CERTIFICATE</anchor></code></dfn> が使われることがあります <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src>。
これらを生成しては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>が、構文解析器は等価として扱う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">べきです</strong></anchor>
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="71" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[71]</anchor-end> メッセージの前後に説明文が記述されることがあります。
その場合は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>を説明するものである<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">べき</strong></anchor>です。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src></p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[72]</anchor-end> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src><pre class="code">Subject: CN=Atlantis
Issuer: CN=Atlantis
Validity: from 7/9/2012 3:10:38 AM UTC to 7/9/2013 3:10:37 AM UTC
-----BEGIN CERTIFICATE-----
...</pre></p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="73" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[73]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">拡張子</anchor>として <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.cer</anchor></code> を使うこともありますが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DER</anchor>
形式と区別するため <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.crt</anchor></code> を使う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">べき</strong></anchor>です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;59</anchor-internal></src>。
実際には <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.pem</anchor></code> が使われることもよくあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="91" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[91]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CAfile</anchor>
や
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CApath</anchor>
で使われます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="93" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[93]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">x5u</code>で指定された証明書鎖</anchor>で使われます。</p></section><section><h1>実装</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="83" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[83]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PKI</anchor> の実装のほとんどが、何らかの形で対応しています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="84" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[84]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenSSL</anchor> はもちろん対応しています。
<code>openssl</code> のサブコマンドのほとんどが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEMファイル</anchor>の入出力に対応しています。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DER</anchor> など他の形式にも対応しています。)</p></section><section><h1>文脈</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="104" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[104]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MySQL</anchor> プロトコルの
<code>caching_sha2_password</code>
用の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">公開鍵</anchor>応答では、
<code>PUBLIC KEY</code>
の <code>.pem</code> ファイルが返されます。</p></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> 本ファイル形式名の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">電子メール</anchor>における<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗号化</anchor>の仕様を指すとされていますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> に (少なくても <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> として出版されたものには) 
本ファイル形式の規定はなく、なぜ <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.pem</anchor></code> ファイルと呼ばれているかは定かではありません。
本ファイル形式は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> の影響を受けているようですが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor>
で規定されるメッセージ形式とは明らかに違いがあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> の実装が使っていたファイル形式なのかもしれません。あるいは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor>
の記憶が濃い時代に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> 風のファイル形式として名付けられたのかもしれません。
(現在でいう) <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</anchor> のことを <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> と呼んでいたのかもしれません。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME</anchor> の一機能に過ぎない <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</anchor> のことを「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME</anchor>」と呼ぶ風習がかつて一部にありました。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME</anchor> より前の時代に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</anchor> のことを「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor>」と呼んでいても不思議ではありません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</anchor-end> 本ファイル形式を明確に規定する仕様書として現時点で唯一発見できているのが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書ダウンロード</anchor>です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書ダウンロード</anchor>仕様書 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;42</anchor-internal></src> の最も初期と思われる1996年版 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;45</anchor-internal></src>
の定義は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> という語は登場しませんが、当時の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> である
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 1113</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;47</anchor-internal></src> を参照しています。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> ちなみに <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</anchor> という名称も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> には登場していません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> としての初出は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME</anchor> ですが、それ以前から <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</anchor> という呼称があったのかは不明です。
いずれにしても1996年には既に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</anchor> は有名になっていました。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</anchor> と呼びつつも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> を参照しているのは興味深いところです。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書ダウンロード</anchor>仕様書が最初の定義で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Netscape</anchor> 社が本形式を考案したのか、
より以前からあった形式を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Netscape</anchor> が実装したのかは不明です。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor> 版 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</anchor> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 1421</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;21</anchor-internal></src> が最新の定義です。
(ただしこの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> は既に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HISTORIC</anchor> となっています。)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="87" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[87]</anchor-end> 
<time>2007年8月<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2007-08</attrvalue></time>に発行された <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提案標準</anchor>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4945</anchor>
には、 <code>.pem</code> ファイルの構文が (曖昧ながら) 定められていました。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="86" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;86</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[61]</anchor-end> 
<time>2015年<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">year:2015</attrvalue></time>に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7468</anchor> が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提案標準</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor>
として発行され <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;60</anchor-internal></src>、 <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">.pem</anchor></code> ファイル一般の構文が初めて明文化されました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="88" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[88]</anchor-end> 先行仕様の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4945</anchor> にはなぜか一言も言及がありません。
明らかに重複しており、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">更新</anchor>なりなんなり手続きが必要だったはずです。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4945</anchor> で仕様が明文化されていたことは世間ではあまり知られていませんでした。
まさか <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> でも知る人ぞ知る状態だったのでしょうか。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> <cite>Netscape Certificate Download Specification</cite> (<time>2015-04-12 12:43:10 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://web.archive.org/web/19970709163955/http://home.netscape.com/eng/security/downloadcert.html">http://web.archive.org/web/19970709163955/http://home.netscape.com/eng/security/downloadcert.html</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> <cite xml:lang="en">RFC 1113 - Privacy enhancement for Internet electronic mail: Part I - message encipherment and authentication procedures</cite> (<time>2015-03-22 21:14:51 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc1113#section-4.3">http://tools.ietf.org/html/rfc1113#section-4.3</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <cite xml:lang="en">RFC 1421 - Privacy Enhancement for Internet Electronic Mail: Part I: Message Encryption and Authentication Procedures</cite> (<time>2015-02-22 14:28:36 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc1421#section-4.3.2.4">https://tools.ietf.org/html/rfc1421#section-4.3.2.4</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="86" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[86]</anchor-end> <cite xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4945</anchor> - The Internet IP Security PKI Profile of IKEv1/ISAKMP, IKEv2, and PKIX</cite>, <time>2020-03-29 19:06:48 +09:00</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc4945#section-6">https://tools.ietf.org/html/rfc4945#section-6</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[60]</anchor-end> <cite xml:lang="en">RFC 7468 - Textual Encodings of PKIX, PKCS, and CMS Structures</cite> (<time>2015-04-20 12:22:43 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc7468">https://tools.ietf.org/html/rfc7468</anchor-external></li></ul></refs></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="82" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[82]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEMファイル</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PKI</anchor> を使う、あらゆる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>に使われます。
例えば次のようなものがあります。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>証明書</anchor>、<anchor>PKI</anchor> </sw-see></p><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサーバー</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTPS</anchor>) の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">サーバー証明書</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサーバー</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTPS</anchor>) の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント証明書</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">S/MIME</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">署名</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗号化</anchor>した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターネットメール</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SSH</anchor> 接続<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="94" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[94]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AWS</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EC2</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インスタンス</anchor>に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SSH</anchor> で接続</li></ul></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="95" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[95]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenSSL</anchor> およびそれを<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ライブラリー</anchor>として組み込んだ各種<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>の利用</li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[85]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEMファイル</anchor>といっても中身にいろいろな種類があるし、
使いみちもいろいろあるので、
何でも出来ちゃうすごいもののように聞こえて、
とっつきにくくみえますね。</p><figure class="amazon"><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗号化</anchor></p></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite>証明書のファイル形式について</cite>
(<time>2009-05-14 20:39:44 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://moca.wide.ad.jp/moca_guide/about_fileformat.html">http://moca.wide.ad.jp/moca_guide/about_fileformat.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <cite xml:lang="ja">.PEM SSL サーバ証明書とは。</cite>
(<time>2014-10-24 16:51:29 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.digicert.ne.jp/howto/basis/pem-ssl-creation.html">http://www.digicert.ne.jp/howto/basis/pem-ssl-creation.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <cite xml:lang="ja">SSL/TLS/PKI メモ</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Masatoshi Sato</anchor> 著, <time>2011-07-08 01:12:34 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://siisise.net/linux/ssl.html">http://siisise.net/linux/ssl.html</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <cite xml:lang="en">RFC 5958 - Asymmetric Key Packages</cite>
(<time>2015-04-05 22:36:35 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc5958#section-5">https://tools.ietf.org/html/rfc5958#section-5</anchor-external></figcaption><blockquote><p>.p8 files are sometimes PEM-encoded.  When .p8 files are PEM encoded</p><p>they use the .pem file extension.  PEM encoding is either the Base64</p><p>encoding, from Section 4 of <strong>[</strong>RFC4648<strong>]</strong>, of the DER-encoded</p><p>EncryptedPrivateKeyInfo sandwiched between:</p><p>-----BEGIN ENCRYPTED PRIVATE KEY-----</p><p>-----END ENCRYPTED PRIVATE KEY-----</p><p>or the Base64 encoding, see Section 4 of <strong>[</strong>RFC4648<strong>]</strong>, of the DER-</p><p>encoded PrivateKeyInfo sandwiched between:</p><p>-----BEGIN PRIVATE KEY-----</p><p>-----END PRIVATE KEY-----</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <cite>java - what is the differences between &quot;BEGIN RSA PRIVATE KEY&quot; and &quot;BEGIN PRIVATE KEY&quot; - Stack Overflow</cite>
(<time>2015-04-08 01:00:10 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://stackoverflow.com/questions/20065304/what-is-the-differences-between-begin-rsa-private-key-and-begin-private-key">http://stackoverflow.com/questions/20065304/what-is-the-differences-between-begin-rsa-private-key-and-begin-private-key</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> <cite>rsa - RSA key processing tool</cite> (<time>2015-04-11 00:09:25 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.openssl.org/docs/apps/rsa.html">https://www.openssl.org/docs/apps/rsa.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> <cite>dsa - DSA key processing</cite> (<time>2015-04-11 00:20:50 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.openssl.org/docs/apps/dsa.html">https://www.openssl.org/docs/apps/dsa.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> <cite>pkcs7 - PKCS#7 utility</cite> (<time>2015-04-11 00:07:16 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.openssl.org/docs/apps/pkcs7.html">https://www.openssl.org/docs/apps/pkcs7.html</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</anchor-end> <cite>SSL_CTX_load_verify_locations - set default locations for trusted CA certificates</cite>
(<time>2015-04-18 21:29:53 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.openssl.org/docs/ssl/SSL_CTX_load_verify_locations.html">https://www.openssl.org/docs/ssl/SSL_CTX_load_verify_locations.html</anchor-external></figcaption><blockquote><p>Before, between, and after the certificates text is allowed which can be used e.g. for descriptions of the certificates.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</anchor-end> <cite>PEM, PEM_read_bio_PrivateKey, PEM_read_PrivateKey, PEM_write_bio_PrivateKey, PEM_write_PrivateKey, PEM_write_bio_PKCS8PrivateKey, PEM_write_PKCS8PrivateKey, PEM_write_bio_PKCS8PrivateKey_nid, PEM_write_PKCS8PrivateKey_nid, PEM_read_bio_PUBKEY, PEM_read_PUBKEY, PEM_write_bio_PUBKEY, PEM_write_PUBKEY, PEM_read_bio_RSAPrivateKey, PEM_read_RSAPrivateKey, PEM_write_bio_RSAPrivateKey, PEM_write_RSAPrivateKey, PEM_read_bio_RSAPublicKey, PEM_read_RSAPublicKey, PEM_write_bio_RSAPublicKey, PEM_write_RSAPublicKey, PEM_read_bio_RSA_PUBKEY, PEM_read_RSA_PUBKEY, PEM_write_bio_RSA_PUBKEY, PEM_write_RSA_PUBKEY, PEM_read_bio_DSAPrivateKey, PEM_read_DSAPrivateKey, PEM_write_bio_DSAPrivateKey, PEM_write_DSAPrivateKey, PEM_read_bio_DSA_PUBKEY, PEM_read_DSA_PUBKEY, PEM_write_bio_DSA_PUBKEY, PEM_write_DSA_PUBKEY, PEM_read_bio_DSAparams, PEM_read_DSAparams, PEM_write_bio_DSAparams, PEM_write_DSAparams, PEM_read_bio_DHparams, PEM_read_DHparams, PEM_write_bio_DHparams, PEM_write_DHparams, PEM_read_bio_X509, PEM_read_X509, PEM_write_bio_X509, PEM_write_X509, PEM_read_bio_X509_AUX, PEM_read_X509_AUX, PEM_write_bio_X509_AUX, PEM_write_X509_AUX, PEM_read_bio_X509_REQ, PEM_read_X509_REQ, PEM_write_bio_X509_REQ, PEM_write_X509_REQ, PEM_write_bio_X509_REQ_NEW, PEM_write_X509_REQ_NEW, PEM_read_bio_X509_CRL, PEM_read_X509_CRL, PEM_write_bio_X509_CRL, PEM_write_X509_CRL, PEM_read_bio_PKCS7, PEM_read_PKCS7, PEM_write_bio_PKCS7, PEM_write_PKCS7, PEM_read_bio_NETSCAPE_CERT_SEQUENCE, PEM_read_NETSCAPE_CERT_SEQUENCE, PEM_write_bio_NETSCAPE_CERT_SEQUENCE, PEM_write_NETSCAPE_CERT_SEQUENCE - PEM routines</cite>
(<time>2015-04-18 21:50:36 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.openssl.org/docs/crypto/pem.html">https://www.openssl.org/docs/crypto/pem.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="75" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[75]</anchor-end> <cite xml:lang="en">OpenSSL</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenSSL Foundation, Inc.</anchor> 著, <time>2015-09-27 01:47:48 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.openssl.org/docs/manmaster/apps/ecparam.html">https://www.openssl.org/docs/manmaster/apps/ecparam.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="76" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[76]</anchor-end> <cite xml:lang="en">OpenSSL</cite> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenSSL Foundation, Inc.</anchor> 著, <time>2015-09-27 11:37:26 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.openssl.org/docs/manmaster/apps/dhparam.html">https://www.openssl.org/docs/manmaster/apps/dhparam.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="79" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[79]</anchor-end> <cite>X.509 Style Guide</cite>
(<time>2004-09-21 00:09:43 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.cs.auckland.ac.nz/~pgut001/pubs/x509guide.txt">https://www.cs.auckland.ac.nz/~pgut001/pubs/x509guide.txt</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="80" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[80]</anchor-end> <cite xml:lang="en">/docs/manmaster/man3/SSL_CTX_load_verify_locations.html</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenSSL Foundation, Inc.</anchor>著, <time>2018-09-23 23:43:52 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.openssl.org/docs/manmaster/man3/SSL_CTX_load_verify_locations.html">https://www.openssl.org/docs/manmaster/man3/SSL_CTX_load_verify_locations.html</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81]</anchor-end> <cite xml:lang="en">/docs/manmaster/man3/SSL_CTX_load_verify_locations.html</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenSSL Foundation, Inc.</anchor>著, <time>2018-09-23 23:44:22 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.openssl.org/docs/manmaster/man3/SSL_CTX_load_verify_locations.html">https://www.openssl.org/docs/manmaster/man3/SSL_CTX_load_verify_locations.html</anchor-external></figcaption><blockquote><p>The file can contain several CA certificates identified by</p><p>-----BEGIN CERTIFICATE-----</p><p>... (CA certificate in base64 encoding) ...</p><p>-----END CERTIFICATE-----</p><p>sequences. Before, between, and after the certificates text is allowed which can be used e.g. for descriptions of the certificates.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="89" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[89]</anchor-end> <cite xml:lang="en">/docs/man1.1.1/man3/SSL_CTX_load_verify_locations.html</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenSSL Foundation, Inc.</anchor>著, <time>2020-06-01 16:04:37 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_load_verify_locations.html">https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_load_verify_locations.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="90" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[90]</anchor-end> <cite xml:lang="en">/docs/manmaster/man3/SSL_CTX_load_verify_locations.html</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenSSL Foundation, Inc.</anchor>著, <time>2020-06-01 18:16:19 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.openssl.org/docs/manmaster/man3/SSL_CTX_load_verify_locations.html">https://www.openssl.org/docs/manmaster/man3/SSL_CTX_load_verify_locations.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="103" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[103]</anchor-end> <cite xml:lang="en">The OpenSSH Private Key Format</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AJ ONeal</anchor>, <time>2023-06-15T20:57:26.000Z</time>, <time>2023-08-22T07:39:15.647Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://coolaj86.com/articles/the-openssh-private-key-format/">https://coolaj86.com/articles/the-openssh-private-key-format/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="102" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[102]</anchor-end> <cite xml:lang="ja">OpenSSH/OpenSSL 鍵データ相互変換 - Qiita</cite>, <time>2023-08-22T07:34:16.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://qiita.com/angel_p_57/items/6e826105d50cbb0e0abe">https://qiita.com/angel_p_57/items/6e826105d50cbb0e0abe</anchor-external></p></section></body></html>