SSL証明書およびServBay CAのトラブルシューティング
本ドキュメントでは、ServBayのローカル開発環境におけるSSL証明書とServBay CAの代表的な問題と対策について説明します。
ブラウザでアクセスした際、SSL証明書が信頼されないと表示される理由は?
ServBayで運用するローカルサイトにブラウザでアクセスした際、以下のような警告が表示される場合は、SSL証明書の設定に問題がある可能性があります。
- Chrome / Edge:
Your connection is not private
(この接続はプライベートではありません)- エラーコード
NET::ERR_CERT_AUTHORITY_INVALID
- エラーコード
NET::ERR_CERT_COMMON_NAME_INVALID
(滅多にありませんが、証明書のCNとドメインが一致しない場合に出ることがあります)
- Firefox:
Warning: Potential Security Risk Ahead
(警告:セキュリティリスクの可能性あり)- 「詳細」からエラーコード
SEC_ERROR_UNKNOWN_ISSUER
が表示される場合あり - エラーコード
SSL_ERROR_BAD_CERT_DOMAIN
(証明書とドメイン不一致時)
- Safari:
This Connection Is Not Private
(この接続はプライベートではありません)Safari can't verify the identity of the website "your-domain.test"
(Safariは “your-domain.test” の正当性を確認できません)
この問題の主な原因は ServBay User CA
および ServBay Public CA
が正しくインストール・信頼されていないことです。考えられる理由は次の通りです:
- ServBayのルート証明書がOSの信頼ストアに追加されていない。
- MAMPやLaravel Herd他のローカル環境で同じドメイン名(例えば
myapp.test
)を使ったことがあり、そちらの証明書とServBayの証明書が競合、又は他ツールの証明書システムに不具合があり、ブラウザのキャッシュに誤った信頼情報・証明書が残っている。
解決方法
下記の手順に従ってください:
- ServBayを開く
- 設定 (Settings) へ進み、 ServBay Root CA セクションを探す
- ServBay Root CAを再インストール (Reinstall ServBay Root CA) をクリック。ServBayが自動的にルート証明書のインストールと信頼設定を修正します。
- ブラウザをすべて完全に閉じて再起動(全ウィンドウ・プロセスを終了し、SSLキャッシュ情報をクリア)
- サイトへ再アクセス。これでSSL証明書のエラーが解消されるはずです。
上記でも解決しない場合:
多くは古い・競合・無効な証明書がシステムに残っていることが原因です。特に他ツール(MAMPやHerdなど)で同じドメイン名で証明書を生成していた場合に多発します。
- システムの証明書管理ツールを開きます:
- macOS: キーチェーンアクセス (Keychain Access) アプリを起動(「アプリケーション」>「ユーティリティ」から)
- Windows: Win+Rで
certmgr.msc
と入力エンターで証明書マネージャー起動
- 右上の検索ボックスで該当ドメイン名(例:
myapp.test
。不明ならmamp
,herd
などで検索)を入力 - 上部の「種類」から 証明書 (Certificates) を選択
- 検索結果から該当ドメイン名のすべてのSSL証明書を確認。発行者(Issuer)が
ServBay User CA
,MAMP Development CA
,Laravel Herd CA
など類似名かもチェック - 関連する証明書を選択して削除(特に
ServBay User CA
以外から発行、もしくは不審な証明書)。Deleteキーで削除、OSパスワードが必要な場合あり。誤って他の重要証明書を消さないようご注意ください。 - (任意・推奨) キーチェーンアクセスで
ServBay User CA
,ServBay Public CA
も再検索し、証明書アイコンに赤い "x"(不信任)がないか確認。不信任なら証明書をダブルクリックし、「信頼 (Trust)」欄を展開、「この証明書を使用する時」→「常に信頼」に変更 - ServBay アプリに戻る
- 設定 (Settings) → ServBay Root CAへ
- ServBay User証明書をすべて再作成 (Recreate All ServBay User Certificates) をクリック。ServBay管理下のすべてのサイト用に新しいSSL証明書を再生成
- PCを再起動。全サービス・システムが最新証明書と信頼設定を再読み込みします
- ブラウザを再度開き、サイトへアクセス
エラー例を加えることで、ユーザー自身がSSL証明書の信頼不備かを素早く特定し、解決方法にたどり着けます。
SSL証明書が紛失した場合は?
ServBayでローカルサイトを運用中、サイトのSSL証明書ファイルが予期せず紛失することがあります。これによりNginx、Caddy、ApacheなどのWebサーバーが起動できず、証明書関連のエラーがログに表示されることがあります。
症状
ServBayが自動発行したサイトSSL証明書ファイル(.crt
と.key
)が無くなっている場合、Webサーバーのエラーログに以下のような表示が出ることがあります。これらは証明書ファイルのパスが見つからない・読めないことを示します。
代表的なエラー例:
Nginxのエラー例:
log
nginx: [emerg] cannot load certificate "/Applications/ServBay/ssl/private/tls-certs/servb3ay.host/servbay.host.crt": BIO_new_file() failed (SSL: error:80000002:system library::No such file or directory:calling fopen(/Applications/ServBay/ssl/private/tls-certs/servb3ay.host/servbay.host.crt, r) error:10000080:BIO routines::no such file)
nginx: configuration file /Applications/ServBay/package/etc/nginx/nginx.conf test failed
1
2
2
Caddyのエラー例:
log
Error: loading http app module: provision http: getting tls app: loading tls app module: provision tls: loading certificates: open /Applications/ServBay/ssl/private/tls-certs/servbay.host/ser3vbay.host.crt: no such file or directory
1
Apacheのエラー例:
log
AH00526: Syntax error on line 15 of /Applications/ServBay/package/etc/apache/vhosts/servbay.host.conf:
SSLCertificateFile: file '/Applications/ServBay/ssl/pri3vate/tls-certs/servbay.host/servbay.host.crt' does not exist or is empty
1
2
2
どのエラーも、Webサーバーの設定ファイルで指定されている証明書ファイルが存在しない・読めないことを共通して示しています。
解決策
ServBayで自動発行されるSSL証明書なら、証明書紛失時でも自動検出・再発行機能で簡単に復旧できます。
対応手順:
- ServBayアプリ起動: ServBayが動作していることを確認
- サイト一覧へ: ServBayアプリ左ナビから「サイト」を選択
- 対象サイトを選ぶ: SSL証明書紛失問題が生じているローカルサイト名を見つけてクリック
- 自動検出と発行: サイト設定読込時、必要な証明書ファイルが存在しない場合、ServBayが自動で新しい証明書(.crtや.key)を再発行・適切なディレクトリ(
/Applications/ServBay/ssl/private/tls-certs/ドメイン名/
)へ設置します - Webサーバー再起動: 証明書ファイル再生成・設置後、各サイトが利用するWebサーバー(Nginx、Caddy、Apacheなど)のパッケージを再起動。左ナビの「パッケージ」画面でWebサーバーを選び、再起動ボタン(リロードアイコン)をクリック
- 問題解決を確認: Webサーバーが無事再起動したら、HTTPSでローカルサイト(例:
https://ドメイン名
)にアクセスし、問題が解消されているか確認
注意事項
- 上記対策はServBayが自動発行したSSL証明書に限ります。自身でインポートしたカスタム証明書の場合は自動復旧されず、手動で証明書の再取得・設置が必要です。
- ServBayは内蔵
ServBay User CA
でローカルサイト証明書を発行し、HTTPS運用を支援しています。もしHTTPSでアクセス時に「信頼されない証明書」と警告が出る場合、ServBay User CAがOSやブラウザで信頼されていない可能性があります。ServBay公式の ServBay CAの信頼設定方法 をご参照ください。 - ServBayはウェブサイト設定やSSL証明書のバックアップ機能を備えています。定期的なバックアップは万が一の際のデータ復旧に役立ちます。
よくある質問 (FAQ)
Q: ServBayはなぜローカルサイト用にSSL証明書を自動発行するのですか?
A: ServBayは本番環境を模した完全なローカル開発環境を目指しており、HTTPSアプリの開発・デバッグが容易になるよう、内蔵ServBay User CAで自動的にSSL証明書を発行し、簡単にHTTPSでテスト運用できる仕組みを提供しています。
Q: 独自に取得したSSL証明書は利用できますか?
A: はい、ServBayは独自のSSL証明書(ACME/Let's Encryptで取得した証明書など)もインポート・利用可能です。本ガイドはServBay自動生成証明書のトラブル対策を対象としています。
Q: 証明書の再発行は安全ですか?
A: はい、ローカル開発環境向けにServBay User CAで署名した証明書が再発行されるため、ご自身の開発・テスト用にのみ使用され、本番公開サイトのセキュリティには影響しません。
まとめ
ServBayはローカル開発のSSL証明書管理・運用を簡単にする各種機能を提供しています。万が一、ServBay自動発行のSSL証明書が紛失した場合も、ServBayが自動で検知と再発行を行うため、数ステップでHTTPSアクセスを素早く復旧できます。