SSL設定:文法エラーがないのにApacheが再起動できない

Apache設定

みなさんこんばんは、ウチイダユウゴです!

前回に引き続き、SSLでつまづいた話でも備忘メモしておこうと思います。
本当は別のこと書こうと思ってたのですが、きちんと記事にしようと思ったら時間かかりそうなので、また次回以降に…。

このあいだウチイダが遭遇した事例を備忘録として記載します。
レベル低すぎて話にならないかもですが、誰かの参考になれば。

文法チェックでエラー無しなのにapacheが再起動できない

この前記事にしたApacheサーバへのSSL証明書インストール作業中に、実はもう一つ別のことでハマッておりました。

前回の記事はこちら↓

バージョンと設定ディレクティブの違いに気づいてssl設定ファイルを変更し、httpd -t での文法チェックもエラー無しで通過しました。

しかし、apacheサービスを再起動しようとするとエラーになってしまうのです。

ログデータを見てみると、以下の内容でエラーが吐かれていました。

AH01903: Failed to configure CA certificate chain!

設定ファイルに文法エラーがないのに、証明書チェーンできないってどういうこと!?

証明書ファイルのパス設定のミスなども疑ってみましたが、きちんと設定できていました。

そのほかに原因になりそうなものあるかな…。

証明書ファイルのコピペに失敗していた

その後もとりあえず心当たりのあるものを調べていて、ふと手元の証明書ファイルとサーバ上の証明書ファイルが同じ内容かを確認してみました。

証明書ファイルと中間証明書ファイルの中身が逆になっているかも、という疑いだったのですが、
中間証明書の最後のハイフンが1つ抜けていることが判明!

中間証明書ファイルにハイフンを足して上書き保存したところ、あっさりと再起動できました。

なんでこんなことに…自分の作業内容を思い出していて、一つ心当たりがありました。

apache 2.4.8向けの設定を最初に行う際、証明書ファイルと中間証明書ファイルを一つにくっつけたのですが、その際に以下の手順で作業をしたのでした。

  • クライアント上で中間証明書ファイルを開き、全体をコピー
  • リモート側(apacheサーバ)の証明書ファイルをvimで開いて、右クリック>貼り付け
  • 証明書ファイルを保存

2番目の貼り付け作業のときにうまく貼り付けができていなかったようです。

クライアント側ではRLoginを使っているのですが、貼り付けをするときにたまにクライアント側でコピーした内容が一部消えた状態になったりすることがあるのです。

どういうときに発生するのかは特定できていないのですが、今回はそれが原因ではないかと…

証明書の中身の文字列はちゃんと貼り付けできていて、パッと見たところ問題なく複製できていたのでそのまま作業を進めてしまったんですよね。

まとめ:ファイルの転送もコマンドを使ってやるべし

本職のサーバエンジニアの皆さんからしてみれば、「ファイルの編集にクライアントとリモートをまたいだコピペなんかすんなや!」という話かもしれません…。

なんだかんだGUIで生きていたので、なるべくCLIでの操作をしなくて済む手順を無意識に選んでしまうのです。。。

今後はクライアント側できちんとファイルを作って、scpコマンドでファイルを送信するようにしようと思いました。。。

原因も対策もしょぼすぎて何の役にも立たないかもしれませんが、
反面教師として参考にしていただければ(´;ω;`)
俺の屍を越えてゆけ。

以上、最後までお読みいただきありがとうございました(/・ω・)/

コメント

タイトルとURLをコピーしました