ServBayでZeroSSLからSSL証明書を取得する方法
ServBayは強力なローカルWeb開発環境であり、ACME(Automated Certificate Management Environment)プロトコルを利用して、SSL/TLS証明書の自動取得および管理に対応しています。これにより、開発者はローカルサイトに簡単にHTTPSを導入でき、本番環境の再現やService Worker・セキュアコンテキストAPIなどHTTPS前提機能の検証も容易になります。本記事では、ServBayを使ってZeroSSLから無料SSL証明書を発行する手順を詳しく解説します。
概要
ServBayのACME統合機能により、ZeroSSLなどの信頼された認証局(CA)から、実際に公的に信頼されるSSL証明書を直接申請できます。証明書の申請・認証(DNS-01チャレンジ利用)・自動更新などの処理はServBayが自動で行うため、ローカル環境でのHTTPS導入が格段に簡単になります。
主な利用シーン
- ローカル開発環境で本番環境同等のHTTPS設定を構築したい場合
- Service Worker・Web認証API・Geolocation API(ブラウザによる)・Payment Request APIなど、セキュアコンテキストが必要なWeb機能のテスト環境構築
- プロダクション環境との一致性を保持し、プロトコル差異による問題を削減したい場合
- 公開アクセスが必要な(例:イントラネットを通じた)ローカルサービスに信頼済みSSL証明書を導入したい場合
前提条件
ZeroSSL証明書申請の前に、下記条件が満たされていることをご確認ください。
- 独自ドメインの所有: 管理可能な独自ドメインが必要です。証明書は
localhost
やIPアドレスでは取得できません。 - ドメインDNSレコードの管理権限: ZeroSSL(ACME DNS-01チャレンジ経由)は、ドメイン所有権を証明するため、ドメインDNSに専用TXTレコードを追加する必要があります。そのため、DNSレコードを編集できる必要があります。
- DNSプロバイダーAPIキーの取得: ServBayのDNS API認証方式を利用するには、DNSサービスプロバイダー(例:Cloudflare、GoDaddy、Aliyun DNS等)でAPIアクセス用のキーまたはトークンを取得してください。各プロバイダーで取得方法は異なりますが、通常はユーザーパネルで発行できます。設定方法やAPIキー名はacme.sh WikiのDNS API項目も参考にしてください(ServBayのDNS API設定はacme.sh互換です)。
証明書申請手順
以下に、ServBayからZeroSSL証明書を申し込む手順を示します。
ServBayを起動し、管理パネルを開く: ServBayアプリのアイコンをダブルクリックして起動し、システムトレイアイコンまたはメニューから管理パネルを開きます。
SSL証明書管理画面へ移動: 左側サイドバーのSSL証明書をクリックします。
新しい証明書の申請開始: SSL証明書一覧画面右上の「+」ボタンをクリックします。証明書申請の設定ウィンドウが表示されます。
証明書申請情報の入力: 表示される"Request Certificate"ウィンドウで次の情報を入力します。
- Common Name(コモンネーム): 証明書の識別名を設定します(例:
servbay.demo SSL
)。これはServBay内での管理用です。 - Usage Purpose(用途):
TLS/SSL
を選択。Web通信暗号化用証明書であることを指定します。 - Request Method(申請方法):
ACME
を選択してください。ACMEプロトコルによる自動取得を指定するものです。 - Issuer(発行元):
ZeroSSL
を選択。 - DNS API Provider(DNS APIプロバイダー): ドメインで利用中のDNSサービスを選択してください。主要なプロバイダーに幅広く対応しています。
- Algorithm(アルゴリズム):
ECC
(楕円曲線暗号方式)と鍵長384
の選択がおすすめです。RSAと同等の安全性を維持しながら鍵を短くでき、処理も高速です。 - E-Mail Address(メールアドレス): 有効なメールアドレスを入力します。ZeroSSLやServBayからの有効期限や更新失敗時通知に使用される場合があります。
- DNS API Tokens(DNS APIトークン): DNSプロバイダー毎に指定されるAPIキーや情報を指定します。多くの場合「キー=値」形式(例:
CF_Key=xxx CF_Email=xxx
)です。選択したDNS API Providerとacme.sh Wikiの記述に従って正確に指定してください。注:API情報記入時はexport
等のshell構文を付けず、シンプルに「キー=値」または「キー="値"」を空白区切りで複数記入します。 - Domain(ドメイン): 証明書申請対象ドメインを入力。複数の場合やワイルドカード(
*
)を含める場合は半角カンマ,
で区切ります(例:servbay.demo, www.servbay.demo, *.servbay.demo
)。ワイルドカード証明書(*.yourdomain.com
)申請は必ずDNS API方式が必要です。
(ご注意:画像内で使用されているサンプルドメインはテキスト記載のブランド例とは異なる場合があります。説明文を優先してください)
- Common Name(コモンネーム): 証明書の識別名を設定します(例:
申請の送信: 全情報を確認し、右下のRequestボタンをクリックします。
申請工程の待機: ServBayはバックグラウンドでACMEクライアントを起動し、ZeroSSLサーバーと通信、DNS APIを使ったTXTレコードの自動作成と所有権認証を行い、成功次第証明書を取得・インストールします。DNSプロバイダーやZeroSSLサーバー応答・DNS反映速度次第で一定時間かかる場合があります。進捗状況は画面で確認可能です。
証明書一覧の確認: 申請成功後は新しい証明書がSSL証明書リストに"Valid"(有効)状態で追加表示されます。
証明書の利用
取得した証明書を使ってローカルWebサイトへHTTPSを適用できます。
- サイト設定を開く: ServBay管理パネル左側サイドバーのサイトをクリック。
- サイトの選択もしくは編集: HTTPSを適用したい既存サイトを選択、または新規作成します。
- SSL証明書設定: サイト設定画面内SSL項目で、ドロップダウンを"None"や"ServBay User CA"等からACMEへ切り替えます。
- 取得済み証明書の選択: 右側に表示されるACME証明書ドロップダウンから、先ほどZeroSSL経由で申請した証明書(Common Nameで識別)を選びます。
- 設定の保存: 保存ボタンで変更を適用。ServBayが、自動でWebサーバー(Caddy or Nginx)のHTTPS設定を更新します。
(ご注意:画像内で使用されているサンプルドメインはテキスト記載のブランド例とは異なる場合があります。説明文を優先してください)
この設定後、ご自身のサイトにはhttps://{あなたのドメイン}
でアクセス可能です。
証明書の自動更新について
ZeroSSL発行証明書の有効期間は通常90日です。ServBayのACME機能は証明書の有効期限を自動監視し、期限30日前など定期的に自動更新を実行します。ServBayが稼働し、DNS APIキーが有効な限り、手動介入なしで実施されます。
重要な注意事項・トラブルシューティング
- DNS APIキーの管理: DNS APIキーはDNSレコード編集権限を持ちます。情報管理には細心の注意を。
- DNS反映時間: 認証用TXTレコードの書き込みは、グローバル反映に数分~数時間かかる場合もあります。失敗時は少し待ってから再試行してください。
- APIキーのフォーマット: DNS API情報はacme.sh Wiki記載の形式で、
export
等のshellコマンドは含めず入力する必要があります。誤記入が多い部分ですのでご注意ください。 - ファイアウォール: ローカルファイアウォールやネットワーク設定が、ServBayからZeroSSLやDNSプロバイダーAPIサーバへの通信を妨げていないかご確認ください。
- ServBay User CAとZeroSSLの違い: ServBayには独自のServBay User CAやPublic CA機能もあります。これは純ローカル開発向けで、システムまたはブラウザにServBayのルート証明書を信頼登録することでHTTPS運用が可能です。一方ZeroSSLは公的認証局として外部アクセスや本番環境に近いシミュレーション用途で推奨されます。用途にあわせて使い分けください。
まとめ
ServBayのACME連携により、ZeroSSLの無料SSL証明書を簡単に取得・管理し、ローカル開発サイトにHTTPSを素早く導入できます。本番環境の再現やセキュリティ検証が容易になり、開発体験の質が向上します。取得や自動更新も全自動化され、本当に手間なくローカルHTTPSを構築できるのが特徴です。