Skip to content

GCE + WordPressでSSL証明書の取得と自動更新を設定する

こんにちは。

GCE(Google Cloud Engine)とbitnamiのWordPress環境でSSLをLet’s encryptでSSL証明書を取得する方法とcronを使ったSSL自動更新について解説します。

2023/11/22 追記 自動更新のスクリプトをGCEの最低スペック用に書き換えました。

Let’s encryptとは

621f3fe0 image

無料でSSL証明書を取得できるサービスです。導入方法も簡単でおすすめです。

certbotというコマンドラインツールを用いて、Let’s encryptからSSL証明書を発行します。

SSL証明書の取得

前提として、GCEにbitnamiをインストール済、http://[独自ドメイン]、http://www.[独自ドメイン]がアクセスできることが必要です。

それではやり方を解説します。

a9209aa8 image

まずは、GCEからSSHコンソールを立ち上げます。

次に以下のコマンドでcertbotをインストールします。

sudo apt-get install certbot -y

インストールが終了したら、以下のコマンドで正常にインストールされているかを確認します。

certbot --version
17ca8548 image

バージョンが表示されればOKです。

SSLを取得する前に、以下のコマンドでnginxを停止しましょう。

sudo /opt/bitnami/ctlscript.sh stop nginx

次に以下のコマンドでSSL証明書を取得します。

sudo certbot certonly --standalone -d [独自ドメイン] -d [www.独自ドメイン] -m [メールアドレス]
93b5317b image

すると、規約に同意するか訊かれるのでy を入力してエンターキー。

78816089 image

次に、ニュースレター送るけどいい?と訊かれるので、yn を入力してエンターキー。

a4dc9698 image

無事に登録が完了すると、Congratulations! と称えてくれます。また、有効期限も表示されます。(今回だと2023-12-13)

SSL証明書が取得できたら、停止しておいたnginxを開始しましょう。

sudo /opt/bitnami/ctlscript.sh start nginx

SSL証明書を自動更新する

SSL証明書は3ヶ月で有効期限が切れてしまうため、cronを使って自動更新コマンドを登録しましょう。

以下のコマンドでcronを編集します。

crontab -e

初回起動の場合は、エディタを選択できるので使いやすいものを選びましょう。

エディタが開いたら、以下の文章を入力します。

0 3 15 * * sudo certbot renew --pre-hook "sudo /opt/bitnami/ctlscript.sh stop nginx && sleep 10" --post-hook "sudo /opt/bitnami/ctlscript.sh start nginx"

ポイント

  • 0 3 15 * * は毎月15日の3:00に実行することを表しています。
  • --pre-hook はSSL証明書更新の前に実行するコマンドを指定できます。今回はnginxを停止しています。
  • sleep 10 はnginxを停止するコマンドを実行してから10秒待機します。GCEの最低スペックを使っているため、すぐにrenewを実行するとnginxが停止中のためポート80が使用されているとエラーが出てしまいます。(2023/11/22追記)
  • --post-hookはSSL証明書更新の後に実行するコマンドを指定できます。今回はnginxを開始しています。

実行する頻度は必要に応じて変更してください。編集が終了したら、保存して閉じます。(vimなら:wq

以下のコマンドで登録したcronを確認できます。

crontab -l

cronの内容を試しに実行してみましょう。

sudo certbot renew --pre-hook "sudo /opt/bitnami/ctlscript.sh stop nginx && sleep 10" --post-hook "sudo /opt/bitnami/ctlscript.sh start nginx"
17566be8 image

有効期間が残っているため、更新はできないようです。

SSL証明書の取得&自動更新は以上で終了です。お疲れ様でした。

カテゴリWordPress

Be First to Comment

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントは日本語で入力してください。(スパム対策)

CAPTCHA