アフィリエイト広告を利用しています

macOS Venturaの最新記事

「error: The specified item could not be found in the keychain.」セルフCAは面倒です。

homebrewでphpを導入し、macOS VenturaのApacheでPHPを有効にして利用しています(導入記事はこちら)。

macOS Ventura 13.4から13.4.1にアップデートした後、PHPモジュールのロードができなくなっていました。
 sudo /usr/sbin/httpd -D FOREGROUND
[Sun Jun 25 16:49:54.095480 2023] [so:error] [pid 3452] AH06663: Unable to find code signature authority on module at /opt/homebrew/opt/php@8.1/lib/httpd/modules/libphp.so that matches authority name "macyarounanoka" configured on LoadModule directive.
httpd: Syntax error on line 555 of /private/etc/apache2/httpd.conf: Syntax error on line 1 of /private/etc/apache2/other/00-http.conf: Code signing error - not loading module at: /opt/homebrew/opt/php@8.1/lib/httpd/modules/libphp.so
  1. -D FOREGROUNDで起動すると発生しているエラーの詳細がわかります。
  2. /etc/apache2/other/00-http.confにlibphp.soのロード設定済みです。ここでエラーが発生いているが上記ログからわかります。
  3. brewでは過去のphp8.1が残っているのでそれをそのまま使っています。すでにphp8.2導入済みです。過去に署名した8.1のlibphp.soを利用することで長く使えると思っていました。


php8.1系のアップデートした覚えがないんです。「 Code signing error 」は発生しているので、codesignで再署名しましたが・・・error: The specified item could not be found in the keychain.で署名できないことがわかりました。
codesign --sign "macyarounanoka" --force --keychain ~/Library/Keychains/login.keychain-db /opt/homebrew/opt/php@8.1/lib/httpd/modules/libphp.so
error: The specified item could not be found in the keychain.


つい最近やったことは・・・macOS Ventureのアップデートです。13.4から13.4.1にアップデートしました。これが原因なんでしょうか、セキュリティ上のアップデートが影響したんでしょうね・・・
  1. キーチェインでセルフCA、macyarounanokaの署名を確認してみると有効期限切れでした。かなり前から有効期限切れなんですけど、今まで全く問題なかったんですよね・・・


現状のCAを延命する手段、つまり切れた再発行する方法はわかりませんでした。
期限切れの状態で、署名をアクティブにするために「常に信頼する」に変更して見ました。
再起動までしたんですが、codesign時に発生する「error: The specified item could not be found in the keychain.」は改善しませんでした。


もう一度署名し直す、それしか解決の方法はないんでしょうか・・・

Bing AIに聞いて見た


macOSで自己ルート証明書の期限を延長する方法は、以下の通りです。

1. キーチェーンアクセスを開き、ルート証明書を選択します。
2. 証明書の詳細を表示し、「信頼」の項目を展開します。
3. 「この証明書を使用するとき」のポップアップメニューから「常に信頼」を選択します。
4. 証明書の有効期限が切れている場合は、新しい証明書を発行する必要があります。
5. 新しい証明書を発行するには、公開X.509と秘密キーからCSRを生成し、自己署名してインストールします。

この方法で、macOSで自己ルート証明書の期限を延長することができます。ただし、Apple製品では、2020年9月1日以降に発行されたサーバ証明書は、有効期間が398日間を超えないものとされています。また、自己ルート証明書は、他のエンティティによって信頼されない可能性があるため、注意が必要です。

(ルート証明書と認証局は同義です。)

=>有効期限は新規に作り直し・・・が一般的っぽいです。

有効期限10年で新たな署名が作れた


  1. CAは削除せず、そのまま残しています。下記手順で新しいCA2を作っています。
    削除しなかった理由は下記確認メッセージが出たので、しばらく削除しないことを選んでいます。
    「警告!秘密鍵が削除されると、このキーに関連する証明書が使えなくなります。そのために暗号化されたメッセージの読み込みや安全な接続が妨げられる可能性があります。選択されたキーが本当に必要ないことを確認してから続けてください」
  2. 証明書(macyarounanoka)は削除。新たに作ったCA2で証明書を作りました。
  3. https://www.simplified.guide/macos/apache-php-homebrew-codesignの「macOS でコード署名用の認証局を作成する方法」で新たにCA2を作りました。
  4. 試しに「10年の有効期限(3650日)」を指定したところそのまま作れました
    設定通り10年持つかは不明ですけど
  5. このCA2を使って新たに証明書(macyarounanoka)を作成しました。手順はapache-php-homebrew-codesignに従っています。
  6. codesignコマンドで今まで通り、libphp.soに署名後、apahce+phpは動作しました。
環境:macOS Ventura 13.4.1

コード署名のCAは10年以上設定できるかも?3650日は指定できました。

まとめ:macOSのApache+PHPは面倒です・・・セルフCA局は、有効期限があり、期限を迎える度に新規発行し直す必要があります


自己署名関連は手を出したくないっていうのが本音です。

コマンドラインで証明書関連発行できないんですかね・・・




 

 

「error: The specified item could not be found in the keychain.」セルフCAは面倒です。
サブコンテンツ

コメント

comments powered by Disqus

コメントシステムを利用したくない方はお問い合わせからお願いします。
2013.8.19 DISQUS(外部コメントサービス)の利用を開始しました。
Facebook, google, Twitter等のアカウントで投稿可能です。

Microsoft 365 プランの比較 icon

(Microsoft 365 Personal 2,500 円 キャッシュバック キャンペーン 実施中 2022/3/30まで)

  • 祝!初マック(mac book retina 13インチ)!retina美しいです^^マックに関係するTips、情報、はまったことの解決策等
  • Mac野郎なのか
  • プロフィール

このページの先頭へ