【Raspbian】Let’s Encryptの証明書更新でハマってしまった時のメモ…

Raspbian

なんでハマってしまったか

先に結論から言ってしまうと、ルーターの80番ポートの開放をしていなかったことに気がつかなかったからです…😭
それに、このサーバーはこのブログと、配信しているアプリのAPIサーバーをになっているので、頑張ってサーバーを調べてもおかしな所がなくて、かなり焦りました(笑)

対処法

色々ぐちゃぐちゃになってからの、リセット→再取得までをまとめます。
私自身あまりサーバーサイドの知識が詳しく無いのと、やっていることが冗長になっている所があるかもしれないで、詳しい方がいたら教えて頂きたいです…🙇‍♂️🙇‍♂️🙇‍♂️

ルーターとファイアウォールのポートを確認

ルーターは各々で設定方法が違うので触れないですが、80番ポートの開放を忘れないようにしましょう。
ファイアウォールは、/etc/iptables/rules.v4を確認することで80番ポートが開放されているか確認できます。
そこで以下の行がなければ追記して、ネットワークの再起動を行いましょう。

追記する行

-A INPUT -p tcp --dport 80 -j ACCEPT

ネットワークの再起動

sudo netfilter-persistent reload

とりあえず証明書関連を全部リセット

色々と試行錯誤しすぎて汚くなってしまったので、まずは/etc/letsencryptの中身を削除していきます。

sudo rm -rf /etc/letsencrypt

そして、certbotコマンドも一旦削除してgithubから直接cloneしてきます。

sudo apt remove certbot
sudo apt autoremove

cloneする場所は任意ですが、自分は/usr/shareのなかにcloneしました。

cd /usr/share
sudo git clone https://github.com/certbot/certbot

ApacheのSSL設定をコメントアウトする

以前SSLの設定しており、次行うところでコメントアウトしていないと証明書取得に必要なパッケージがインストールができなくなってしまうので、/etc/apache2/sites-available/default-ssl.confを編集します。

sudo vim /etc/apache2/sites-available/default-ssl.conf

で任意のエディタでファイルを開き

/etc/apache2/sites-available/default-ssl.conf

私の場合だと、25行目と31~34行目がコメントアウトされていなかったので、コメントアウトします。

証明書取得に必要なパッケージのインストール

cloneしたディレクトリの中に入って、以下のコマンドを入力する。

cd certbot
./certbot-auto

その時に入力を迫られたら、cを押して抜けます。

証明書の取得

以下のコマンドを打つことで、証明書の取得を行います。

sudo ./certbot-auto certonly --webroot \
-w /var/www/証明書を導入したいディレクトリ \
-d 自分のドメイン \
--email 自分のメールアドレス \
--agree-tos
  • 証明書を導入したいディレクトリ
    • ドキュメントルートなど。
    • (例) /var/www/html
  • 自分のドメイン
    • このブログの場合だと、reishisu.xyzみたいな。
  • 自分のメールアドレス
    • 証明書の有効期限などの通知がくる。

そうすると、今度は以下のように入力したメールアドレスを共有しても良いですか?って聞かれるので、いい方はY、嫌な方はNを押します。(私はNを押しました)

そうしたら、ぐあ〜って進むので画像のようなIMPORTANT NOTES:の下にCongratulations! が出てきたら取得完了です!

あとは、/etc/letsencryptに証明書などの色々なファイルとディレクトリができていることを確認します。

/etc/letsencrypt

ApacheのSSLを有効化する

先ほどのコメントアウトした部分を解除するだけです✨

sudo vim /etc/apache2/sites-available/default-ssl.conf

で任意のエディタでファイルを開き

/etc/apache2/sites-available/default-ssl.conf

先ほどコメントアウトした、25行目と32~34行目までのコメントを解除します。

Apacheを再起動!!

以下のコマンドでApacheを再起動します。

sudo service apache2 restart

以上で証明書の入れ直しが完了です✨✨

確認

入れ直し前がこうだったものが、、、

証明書の入れ直し前(2020/6/3 01:06:22)

私の更新間隔が狭かったせいでわかりにくいですが、↑の画像から1時間ほど延長されていることが確認できます!!

入れ直し後(2020/6/3 02:18:14)

更新方法

今回は入れ直しをしたため面倒だったのですが、次からは以下のコマンドを入力して一発で証明書を更新することができます!!

sudo /usr/share/certbot/certbot-auto renew --post-hook 'sudo service apache2 restart'

renewをつけるだけで、自動生成された/etc/letsencrypt/renewal/指定したドメイン.confの設定ファイルが呼び出されて面倒な入力が要らなくなります。
そして、–post-hookをつけることで更新があった時だけ’sudo service apache2 restart’が実行される便利機能があります😆

コメント

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