ServBayでACME方式を利用してSSL証明書を申請する
ServBayは、ACMEプロトコルを利用してローカル開発ウェブサイト向けのSSL/TLS証明書を自動で申請できます。ACME(Automated Certificate Management Environment)は、証明書の申請・更新・失効管理を自動化するための標準プロトコルです。ServBayのACME管理パネルを使えば、ローカルサイトに信頼性の高いSSL証明書を簡単に設定でき、本番環境のシミュレーションやHTTPS関連機能のテストに欠かせません。
証明書はデフォルトでZeroSSLによる発行が優先されますが、Let's EncryptやGoogle Trust Servicesなど他のACME互換認証局(CA)も選択可能です。
TIP
ローカル開発環境と本番環境の一致性を保つため、信頼できるSSL証明書を使用することがとても重要です。ServBayのACME機能ならその設定が非常に簡単です。
主要な概念の解説
始める前に、ServBayのACME機能を正しく使うための主要な用語をご説明します。
- ACMEプロトコル: 証明書認証局(CA)とサーバー間の自動証明書発行・更新・管理を実現するオープンスタンダードのプロトコルです。
- DNS-01認証(DNS API方式): ACMEは複数のドメイン所有権確認方法に対応しています。ServBayは主にDNS-01方式を採用し、CAが指定するTXTレコードをドメインのDNSに追加することで所有権を証明します。この方式の主な利点は以下です:
- ローカル開発環境が外部インターネットからアクセス可能である必要がありません。
- ポート80/443がファイアウォールやISPによりブロックされていても認証できます。
- 外部アカウントバインディング(EAB, External Account Binding): Google Trust ServicesやZeroSSLのような一部CAでは、最初の証明書申請時にアカウント連携のためEAB情報(Key IDとHMAC Key)が必要です。(ServBay統合のacme.shがクライアントとして働きます)
- ECC vs RSA証明書:
- RSA: 古くからある暗号方式で高い互換性がありますが、安全性を保つには長い鍵長(2048ビットや4096ビット)が必要となり、処理負荷が増します。
- ECC(楕円曲線暗号): 現代的な暗号方式で、同等の安全性で短い鍵(256ビットや384ビット)を利用でき、高速な握手や省帯域、優れた前方秘匿性が特徴です。ServBayはECC証明書の利用を推奨します(デフォルト)。
前提条件
ServBayはDNS APIを利用することで、インターネットからローカルサイトがアクセス可能でなくても証明書申請ができます。ACME方式でSSL証明書を申請するには、以下の条件を満たしてください。
- ドメインの所有: DNSレコードを編集できる登録済みドメインが必要です。
- DNSプロバイダーのAPIキー取得: DNS API経由で認証用TXTレコードの追加・削除を自動化するため、ドメインのDNS管理プラットフォーム(レジストラでない場合もあります)のAPIキー等が必要です。対応DNSサービスとAPI KEYの取得方法は
acme.sh
公式Wiki(英語)のDNS APIセクション How to use DNS API をご覧ください。 - EAB情報の取得(Google Trust Services/ZeroSSLを初めて利用する場合): Google Trust Servicesで証明書を申請する場合は、Google CloudからEAB情報を発行してください。詳細はGoogle Cloud公式ドキュメント(英語) Obtaining EAB credentials from Google Cloud を参照。ZeroSSL利用時も初回はメール確認やAPIキーが必要な場合があります。
ServBayでACME方式を使った証明書申請手順
下記の手順で、ローカル開発サイト用にACME方式でSSL証明書を取得できます。
ServBay管理パネルを開く
ServBayアプリを起動し、メニューバーまたはDockのアイコンから管理パネルへアクセスします。SSL証明書管理へ移動
左側ナビゲーションバーのSSL証明書
をクリックします。新規証明書申請の開始
SSL証明書管理画面の右上+
ボタンから新規証明書申請
を選択します。証明書の基本情報を入力
- 証明書名: 識別しやすい名前を設定(例:
servbay-demo-ssl
) - 用途:
TLS/SSL
を選択 - 申請方式:
ACME
を選択
- 証明書名: 識別しやすい名前を設定(例:
証明書発行元(CA)の選択
発行元
ドロップダウンから希望するCAを選択します。デフォルトはZeroSSL
ですが、Let's Encrypt
やGoogle Trust Services
も利用可。ここでは例としてZeroSSL
を選びます。DNS APIプロバイダーの選択
DNS APIプロバイダー
から実際にご利用のDNSサービスを選びます(例:Cloudflare)。ここで設定するのはドメインのDNS管理プラットフォームです(レジストラが異なる場合もあります)。証明書の暗号方式・鍵長の選択
- アルゴリズム: デフォルトかつ推奨は
ECC
です。古い端末に対応するにはRSA
も選択可。 - 鍵長: ECCなら
384
ビットが標準。RSAなら2048
や4096
ビットが一般的です。
- アルゴリズム: デフォルトかつ推奨は
認証情報の設定
発行元
とDNS APIプロバイダー
の選択に応じて必要フィールドが表示されるので、各種情報を入力します。- ZeroSSLの場合、メールアドレスが必要です。
- CloudflareなどDNS API用認証情報(APIキー等)もacme.sh Wikiの該当プロバイダー情報に従い入力してください。
WARNING
注意:APIキーやシークレット類は値だけ入力し、
export
等のシェルコマンドは含めないでください。ドメインの設定
ドメイン
フィールドに証明書を発行したいドメインを入力します(例:servbay.demo
または*.servbay.demo
)。ワイルドカード証明書(例:*.servbay.demo
)を取得する場合、DNSプロバイダーが自動でワイルドカードTXTレコード追加をサポートしているか確認してください。申請の開始
全ての情報を確認したら申請
ボタンを押してください。ServBayは組み込みのacme.sh
ツールを呼び出し、DNS APIを用いて自動認証・証明書申請を行います。
申請にはDNSレコードの反映やCAのレスポンス速度により数分かかる場合があります。進捗はServBayのログや証明書リストで確認でき、完了した証明書はSSL証明書
一覧に表示されます。
ServBayウェブサイト設定で証明書を利用
ACME証明書が取得できたら、ServBayで設定したウェブサイトにSSLを適用しましょう。
- 管理パネル左側の
ウェブサイト
セクションへ移動 - SSLを設定したいサイトを選び、右にある編集ボタン(鉛筆アイコン)をクリック
- サイト設定の詳細ページで
SSL証明書
の項目を探します - ドロップダウンリストから先ほど取得したACME証明書を選択
SSL有効化
スイッチがオンになっていることを確認- サイト設定を保存。これでウェブサイトがHTTPSでアクセス可能になります。
ACME証明書の自動更新
ACME方式で発行される証明書(Let's EncryptやZeroSSL)の有効期限は通常90日です。HTTPS接続を維持するため、期限切れ前の自動更新が重要です。
ServBayは自動的にACME証明書の有効期限を監視し、期限が近づくと従来通りDNS API情報を使ってCAに自動更新リクエストを送信します。
通常、DNS APIの認証情報が有効でDNSサービスも正常であれば、ユーザーは証明書更新を気にする必要はありません。バックグラウンドで自動処理されます。
よくある質問(FAQ)とトラブルシューティング
- 申請失敗で「DNS認証失敗」と表示される場合
- DNS APIの認証情報が正しいか・TXTレコード編集権限があるか確認してください。
- ServBay上での
DNS APIプロバイダー
の選択と実際のDNS管理サービスが一致しているかご確認を。 - DNSレコード追加後、反映に数分~数十分かかる場合もあります。再申請まで時間をおいてください。
- ドメイン名が正しく記載されているかチェック。
- 申請失敗でEAB関連のエラー表示の場合
- Google Trust ServicesやZeroSSLを初めて使う場合は、EAB情報が正しく取得・入力されているか確認。
- 過去は成功したが今回失敗する場合はEAB情報の有効期限切れや無効化の可能性があるため再度取得してください。
- 申請失敗で「レートリミット」(申請回数制限)と表示される場合
- 各認証局には、一定期間内に同一ドメインまたはIPで申請できる証明書数の上限(レートリミット)があります。連続申請や多数申請時は規制される場合があるため数時間~数日お待ちください。
- 証明書申請は成功したが、ブラウザでまだ安全ではないと表示される場合
- ServBayのサイト設定で対象ウェブサイトに正しく証明書が適用され、SSLが有効化されているか確認を。
- ブラウザのキャッシュをクリア、またはプライベートモードでアクセスしてみてください。
- ローカルのHostsファイルやネットワーク設定でServBayに正しくルーティングされているか確認を。
- ServBayが自動更新を試みるタイミングはいつですか? 通常は証明書有効期限の一定日数前(例:30日前)から自動更新を開始します。アプリが起動していてネットワーク接続が問題なければ、更新はバックグラウンドで静かに進みます。
まとめ
ServBayはパワフルかつ直感的なACME機能を提供し、DNS API方式でローカル開発サイトの信頼されたSSL/TLS証明書申請・管理を容易にします。これにより証明書設定がシンプルになり、本番に近い安全なHTTPS対応開発環境の構築と検証が実現できます。
この記事が、ServBayでのACME方式SSL証明書設定に役立ち、ローカル開発体験をより良いものにする一助となれば幸いです。