0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

株式会社D2C dotAdvent Calendar 2021

Day 1

WordPressが自分でルート証明書の一覧を持ってた話

Last updated at Posted at 2021-12-01

WordPressが自分でルート証明書の一覧を持ってた話

概要

2021/9/30でLet's Encryptが使ってたルート証明書が期限切れになった。
サーバへのデプロイ時にWP CLIを使ってプラグインをインストールしていたが証明書期限関連のエラーが発生してデプロイが失敗するようになったので、それで確認したこととかをつらつら書いていく。

結論

WordPressは自前でルート証明書を管理していた。
WP CLIなどWordPressの機能に依存したものを使ってプラグインなどをダウンロードする場合にはこの証明書を内部でプログラム内で指定してダウンロードを行なっている。
GitHub上でこのファイルが更新されたのは10/4だが、9/22付近でマイナーバージョンアップを施した際にはこの変更は入っておらず、10/4以降にマイナーバージョンアップされたWordPressが公開はされなかったのでバンドルファイルだけダウンロードして差し替えを行った。
※ マイナーバージョンが更新されなかっただけで稼働しているものと同じバージョンを新しく落としたWordPressのバンドルファイルは更新されてたので単にバージョンアップするルールになってなかったっぽい。

経緯

  1. デプロイ後に一部機能が動作していないのを発見
  2. デプロイログ確認時にプラグインのダウンロード時にcurlが証明書エラーで落ちていることを確認
  3. curlなのでシステムのルート証明書を更新
  4. curlコマンドを直打ちした場合は成功するが依然デプロイ時のログが解消しない
  5. WP CLIのプログラムをおってWordPress側が用意しているバンドルファイルを直接指定してダウンロードを実行していることを確認
  6. WordPressが持つバンドルファイルを更新
  7. デプロイ時のエラーログが解消したことを確認

やったこと

サーバで持ってるシステムの証明書を更新

yumでca-certificatesを入れていたため以下で更新できた。

$ sudo yum update ca-certificates

WordPressのバンドルファイルの更新

一応上書き前にバックアップ取りたかったのでwgetで単純にダウンロード。

$ sudo wget https://raw.githubusercontent.com/WordPress/WordPress/master/wp-includes/certificates/ca-bundle.crt

まとめ

滅多に無いことではあるが、WordPressを使ってる場合にルート証明書に変更が入る場合は注意が必要。
WordPress内部のRequestのクラスを使ったりしている場合にはWordPressが持つ証明書が使われることになる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?