SSL証明書の有効期限が切れて困った話【RapidSSL】【nginx】

SSL証明書の有効期限が切れて困った話【RapidSSL】【nginx】

Yuji Hamada

先日僕の運営しているUXレビューサイトyyUXのSSL証明書の有効期限が切れてサイトの閲覧ができなくなってしまってました。
むちゃくちゃ焦って更新というか結果的に新規導入したのでメモ書き程度に残しておきます。

まずSSL証明書が切れそうとひと月前に通知が来ました。まあ1週間前にでも対応しとくやで〜とか思ってたんですが当然忘れました。なんかよくわかんないけど更新はできなくて、新規に作るしかない的なことを見て、急いでいたし新規に作成することにしました。

まずはサーバーにSSHログイン。opensslで秘密鍵(.key)ファイルの作成、秘密鍵からCSRファイルを作成します。

CSRファイルを作ったらRapidSSLのサイトから新規にSSL証明書を購入します。購入する際先程作ったCSRファイルをはっつける必要があります。はっつけると、CSRファイル作るときに入力したドメインとかCityとかの確認ができるので確認しておきます。

そうすると「該当のドメインの持ち主か確認するから、このファイルを指定したディレクトリに置いといてや〜」と言われます。
http://yyux.jp/.well-known/pki-validation/fileauth.txt(かhttps)に置いといてやと言われます。ここで問題が起きました
サイトはhttpsで閲覧できないのでhttpでアクセスしてもらうしかないんですが、nginxの設定でhttp通信は全てhttpsにリダイレクトさせるようにしてました。なんでhttps://yyux.jp/.well-known/pki-validation/fileauth.txt に必ずアクセスされてそれは閲覧できない状態になってました(証明書に問題あるけどみてくれればなんの問題もないけどそのへんよくわからんからなんとかしようと思いました)。
なんとかすると言ってもリダイレクトを解除するだけじゃん?って思うじゃないですか。僕もそう思いました。リダイレクトの設定は自分でしたしその設定を解除するだけでいいものだと。でも何度試してもhttpsにリダイレクトされます。

おかしい

なんでどこにもリダイレクトの設定をしていないのにhttpsに飛ばされるのだ。もっというとnginxの設定をミスってnginxが立ち上がっていなくてもhttpsに飛ばされている。ん?ブラウザ(Chrome)のせいじゃねーか!!!とここでようやく気づきました。原因はHSTSでした。詳細はリンク先とか見てほしいんですが、httpsでアクセスできたことあるサイトは強制的にhttpsでアクセスされるようです。他のブラウザでアクセスしたらhttpアクセス普通にできました。

こっからはファイル置いて、認証されたらサーバ証明書と中間証明書が手に入るんで、単純に2つのファイルを合わせます。上下に並べるだけでいいです。そしたらサーバーに置いてnginxに設定します。

ssl on;
ssl_certificate_key /etc/nginx/yyux.jp.key;
ssl_certificate /etc/nginx/yyux.jp.pem;

nginxの設定は元からしてたんでこれは該当箇所とりあえず書いただけです。最初の設定するときにこの辺忘れてたんでとりあえず置いておきます。
そしたらkeyファイルとpemが無事置けたんで一件落着…と思ったらnginxが起動しませんでした…

最後に詰まった原因はkeyファイルが暗号化されていたことが原因で復号化して上げる必要があります。

openssl rsa -in yyux.jp.key -out ssl.nopass.pk

だいたいこんな感じのコマンド打ちました。
これでようやくhttps通信が可能となりサイトは復活しました。

UXレビューサイト、yyUXを今後共よろしくお願い致します。

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
Yuji Hamada
iOS・PHPエンジニアのHamadaと申します。 簡単に経歴ですが、大学卒業後は大手百貨店で婦人服飾部を経験後、心機一転プログラマーに転職。現在はiOS開発とPHPでのサーバーサイドの開発をしています。ここでは技術的なことから気になるニュースなどについて書いていきます。