備忘録:証明書にハマった

備忘録

Let’s Encrypt の更新からはじまったハマりごと

Root証明の問題は告知されていたようだが、完全にスルー状態で

突然、センサーノードからのデータが止まった・・・

偶に起こるGWの不具合かと思いきや、2ノードから次々と停止

幸い、GWを見るカメラがあるので確認するとどうやら動いている?(何で??)

APIサーバのアクセスを確認すると、アクセス形跡がない・・

ただ、他に動いているノードはあり、その2台は同時にアクセスがなくなったわけではない

手元の同種のGWを起動して通信テストをすると、なんとエラー発生・・・

ログを見ると、証明書の検証ができない、とのこと

「あっ・・・」証明書を更新したタイミング、失敗したか?

調べるとこの記事

とにかく、シンボリックリンクを書き換え、1つ前に戻したが、更新期限間近・・・

GWは古いOSなので、root証明がないのが原因

ルート証明を手に入れて、端末に登録すると通信は再開

しかし、止まってしまったGWは遠い場所・・・

いろいろ回避できないかやってみたが、httpsという形でアクセスするようにプログラムしてあるので、どうにもならない感じ(どうにかできてしまうと、それはそれでセキュリティ上問題)

一方端末側は、ソフトにroot証明を組み込もうと思ったがうまく行かず、証明書検証をスキップするクラスを作り(Google先生に聞いた)無視するのはうまくいった

が、やはりそれはよろしくないのと、結局、遠いGW設置場所でプログラム書き換えが必要なので、現場に行くならRoor証明を端末に登録する方法にすることとする

が、行くタイミングが中々とれず、お金で解決することに

JPRSの証明書ならば 1,000円程度なので自腹を切って購入(古いOSも大丈夫との確認済み)

で、CSRを作成し・・・

久々にやったので、とりあえず手順通りに・・・

パスフレーズ設定・・・なんか心にひっかかたが、手順通りに設定

とりあえず購入、ドメイン確認になったが。これも忘れていいて、検証ファイルの置き場所に手間取る

APIサーバはnginxを使っていて、基本的に素のアクセス(デフォルト/のみ)経路はAPIやその他に飛ばしている

通常、Let’s Encryptの更新時は、一瞬nginxを止めてApacheを動かして、すぐ戻すとしているが、今回は検証が済むまで(いつアクセス来るかわからない)APIが止まってしまうので、nginxも書き換えて検証用のパス設定

ようやく、証明書が発行される

インストールしてnginxを再起動・・・エラー・・・・

まいった・・・server.keyが読めないと・・・

ここで、心にひっかかったパスフレーズを思い出し、解除(これ前に同じことやった気がする)

さあ、これで!と思いきや

今度は証明書が読めない!とエラー・・・まいった

と思ったら、いろいろ変更していた(シンボリックリンクとか)ファイル名が間違っていただけでした

これでようやく復旧

1点感じたのが、この一連の作業は現在レンタルサーバ向けにシステムが作られており、多くの解説がそのシステムの使い方手順になっているので、自分の環境には合わない。

忘却の彼方にある手順を思い出しながら(Google先生に頼り)実施したが、これで良いのだろうか?という疑問。

仕組みというか、構造がわからないまま設定、使うのは何だか気持ち悪い。コンソール端末でキーボードを叩くのもう古いのだろうか・・・確かに面倒なのだけど

そういえば、Let’s encryptの更新時に出てたエラーも確認しておかないと、別のところでハマるかも・・・orz

3か月前