手当たり次第に書くんだ

飽きっぽいのは本能

PEM 形式の証明書・秘密鍵を 1 行に整形する方法

SAML や各種設定で PEM 形式の証明書や秘密鍵を扱う際、改行を含んだままでは正しく処理できない場面があります。

そのため、BEGIN/END 行を除外し、Base64 部分だけを改行なしの 1 行に整形する必要があります。

以下では、どの Linux 環境でも安定して動作する awk を用いた方法をご紹介します。

証明書(.crt)を 1 行に整形する方法

PEM 形式の証明書は次のような構造になっています。

-----BEGIN CERTIFICATE-----
複数行の Base64
-----END CERTIFICATE-----

このうち、BEGIN と END の行を除外し、Base64 のみを 1 行にするには、以下のコマンドを使用します。

awk '!/-----BEGIN CERTIFICATE-----/ && !/-----END CERTIFICATE-----/ { printf "%s", $0 }' \
  server.crt
echo

printf "%s" を使用することで、元の改行をすべて無視して連続した1行の文字列として出力します。最後に echo を追加することで、末尾に 1 つだけ改行を付与しています。

秘密鍵(.key)を 1 行に整形する方法

秘密鍵も同様に PEM 形式のため、BEGIN/END 行を除外するだけで同じ処理が可能です。

-----BEGIN PRIVATE KEY-----
複数行の Base64
-----END PRIVATE KEY-----

整形コマンドは以下のとおりです。

awk '!/-----BEGIN PRIVATE KEY-----/ && !/-----END PRIVATE KEY-----/ { printf "%s", $0 }' \
  server.key
echo

まとめ

  • PEM 形式の証明書や秘密鍵を1行にまとめる際は、awk を使うと安定して処理できます。
  • BEGIN と END の行を除外し、Base64 部分を printf で連結することで1行化できます。
PEM 形式の証明書・秘密鍵を 1 行に整形する方法

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る