自宅鯖のSSL自己証明書が切れた

先日、仕事でも使っている自宅鯖のFTPにいつものようにFilezillaで接続したところ、画像のようなアラートが出ました。
初見のサーバに接続したときに出るいつものヤツとちょっと違ったメッセージの内容でした。
赤文字に注目すると、期限切れ。
あぁ、そうか。
あれからもう1年経ったんですね。
そしてリマインドのチェックボックスが選択できないようになっていました。

SSLは自己証明書(所謂「オレオレ証明書」)でなんとかしていました。
以前は10年とかの有効期限でも問題なかったと思いますが、最近のブラウザは長すぎる有効期限の証明書を疑うようになり、ブラウザで表示できないということもあるようです。
なので、去年作ったときにデフォルトのままの有効期限1年で設定したのでした。

ググってみたところ、自己証明書の有効期限について書いているページは見つけられるけど、その更新をどうやってやるのか説明しているページが見当たりませんでした。
失敗したら最悪の場合はサーバの作り直しとなることを覚悟し、初めて作成した時と同じ方法で試してみました。
そしてまた来年同じことをしなければならないので、メモ代わりにこの記事を残します。

まぁ、想像すればわかることですが、結果的には証明書を作り直せばいいんです。
1年前にこのサーバをビルドしたときに、SSL接続の部分では以下のサイトを参考にしました。
CentOS 7のvsftpdでセキュアなFTPSが利用できるFTPサーバーを構築する

まずは上のサイトに倣ってvsftpd.pemを作成した場所に移動します。
※このサーバではvsftpd.pemという名前にしましたので、それぞれご自分の環境での場所と名前に置き換えて参考にしてください。

# cd /etc/pki/tls/certs/

lsコマンドを叩いて、去年作成したvsftpd.pemが存在することを確認します。

# ls
Makefile ca-bundle.trust.crt make-dummy-cert vsftpd.pem
ca-bundle.crt localhost.crt renew-dummy-cert

ここで以前同様にmakeしようとしても作れません。

# make vsftpd.pem
make: `vsftpd.pem' は更新済みです

なので、既存のファイルをリネームします。

# mv vsftpd.pem vsftpd.pem_20210316

※前回作成日を付してリネームしました。
この状態で、もう一度makeしてみます。

# make vsftpd.pem

すると先に進むことができます。
前回作成した時と同様に色々聞かれます。

Country Name (2 letter code) [XX]:JP <=国を指定
State or Province Name (full name) []:Tokyo<=都道府県を指定
Locality Name (eg, city) [Default City]:Suginami-ku<=市区町村を指定
Organization Name (eg, company) [Default Company Ltd]: <=組織名を指定 ※空白OK
Organizational Unit Name (eg, section) []: <=部署を指定 ※空白OK
Common Name (eg, your name or your server's hostname) []:hogehoge-sv <=サーバ名を指定 ※空白OK
Email Address []:admin@hogehoge.hoge <=管理用メールアドレスを指定 ※空白OK

すると、vsftpd.pemができていますので、lsコマンドで確認します。

# ls
Makefile ca-bundle.trust.crt make-dummy-cert vsftpd.pem
vsftpd.pem_20210316 ca-bundle.crt localhost.crt renew-dummy-cert

vsftpd.pemができました。
サービスを再起動して有効化します。

# systemctl restart vsftpd
# systemctl restart httpd

念のため、有効期限を確認します。

# openssl x509 -noout -dates -in /etc/pki/tls/certs/vsftpd.pem
notBefore=Mar 18 09:21:49 2022 GMT
notAfter=Mar 18 09:21:49 2023 GMT

ここに書かれているnotBeforeが作成日、notAfterが有効期限のようです。

FilezillaでFTP接続してみると、新規証明書の画面が表示されました。

有効期限が更新されていて、リマインドのチェックボックスが選択できるようになっています。

これで無事に更新できました。