catコマンドで連結するファイルの間に改行や文字列を追加する方法
2024年8月9日
コネタですが、先日、nginx に中間証明書をインストールした時の話し。
cat コマンドでサーバー証明書と中間証明書ファイルを連結して、`nginx -s t` で設定ファイルをテストしたら、
PEM_read_bio:bad end line.
というエラーが出てしまいました。
なんじゃらほい、と思って cat で連結した証明書ファイルを確認すると、証明書チェーンが、
-----BEGIN CERTIFICATE----- (証明書1) -----END CERTIFICATE----------BEGIN CERTIFICATE----- (証明書2) -----END CERTIFICATE-----
なんていう形式になっており、こりゃあかん。
vi とかでENDとBEGINの間にある10個の「-」のうち、5個目と6個目の間に改行を入れても良いのですが、そういえば cat って間に任意の文字列を挿入できないのかなー。と、ふと思ったので調べてみました。
いろんな方法があろうとは思いますが、個人的に一番しっくりくるのが、
cat head.pem <(echo) body.pem > chain.pem
これで、chain.pem に「head.pem」+改行+「body.pem」が出力されます。
ちなみに、文字列入りの行を挿入する場合は、
cat head.pem <(echo foobar) body.pem > chain.pem
とすればOK。
えーと、スプラトゥーン2ばっかりやってて忙しいので、適当なネタでお茶を濁してるんじゃ?と思われそうですが、正解です。