ESC

Start typing to search across invoices, services, domains, tickets, and more...

Search... Ctrl+K
aaPanel(宝塔)

宝塔パネル(aaPanel)でサイト作成と無料 SSL 証明書の取得:サイト追加・DNS 設定・Let's Encrypt・HTTPS 強制

5 ステップ 7 分で読めます 4 回閲覧 0
目次

宝塔パネル(aaPanel)を導入したら、次はサイトの作成と HTTPS 化です。本記事では Nginx 環境を例に、宝塔パネルでのサイト追加、ドメインの DNS 設定、サイトファイルのアップロード、Let's Encrypt の無料 SSL 証明書のワンクリック発行、HTTPS の強制までを解説します。中国語版の宝塔と国際版 aaPanel の操作はほぼ同じで、Debian/Ubuntu・CentOS/Rocky/AlmaLinux で動作するサーバーに対応しています。

事前にパネルで Web サーバー(Nginx または Apache)と PHP、必要なら MySQL をインストールし、システムのファイアウォールで 80・443 番ポートを開放しておいてください。

ステップ1:ドメインをサーバー IP に向ける(DNS 設定)

ドメイン登録業者や DNS サービスの管理画面で、ルートドメインと www にそれぞれ A レコードを追加し、値にサーバーのグローバル IPv4 アドレスを設定します(IPv6 を使う場合は AAAA レコードも追加)。反映には数分〜数時間かかります。次のコマンドで確認できます。

dig +short example.com A
dig +short www.example.com A
nslookup example.com

dig がない場合は Debian / Ubuntu で apt install -y dnsutils、CentOS / Rocky / AlmaLinux で yum install -y bind-utils を実行します。返ってくる IP がサーバーと一致してから次に進んでください。一致しないと SSL 証明書の検証に失敗します。

CDN のプロキシ(いわゆる「オレンジの雲」など)を有効にしているとファイル検証が失敗することがあります。証明書の発行中は DNS のみに切り替えるか、DNS 検証を使用してください。

ステップ2:宝塔パネルでサイトを追加する

パネルにログインし、左メニューの「Website(ウェブサイト)」から「Add site(サイト追加)」をクリックします。

  • ドメイン:1 行に 1 つずつ、例として example.com と www.example.com;
  • ルートディレクトリ:既定は /www/wwwroot/example.com、通常はそのままで構いません;
  • データベース:WordPress などが必要とする場合は MySQL データベースも同時に作成し、DB 名・ユーザー名・パスワードを控えます;
  • PHP バージョン:アプリの要件に合わせて選択し、静的サイトなら「Static」を選びます。

送信するとパネルが Nginx のサイト設定を自動生成します。ブラウザで http://example.com を開くと、パネルの既定ページ(サイト作成成功の案内)が表示されるはずです。サーバー上でも確認できます。

curl -I http://example.com

ステップ3:サイトのファイルをアップロードする

パネルの「Files(ファイル)」でサイトのルートを開き、アーカイブをアップロードして右クリックで展開します。SFTP でのアップロードも可能です。その後、権限エラーを防ぐため所有者とパーミッションを整えます。

chown -R www:www /www/wwwroot/example.com
find /www/wwwroot/example.com -type d -exec chmod 755 {} \;
find /www/wwwroot/example.com -type f -exec chmod 644 {} \;

パネルが自動生成した既定の index.html は削除してください。残っていると既定ページが表示され続けることがあります。

ステップ4:Let's Encrypt の無料 SSL 証明書を発行する

サイト一覧で対象サイトの「Conf(設定)」またはサイト名をクリックし、「SSL」タブで「Let's Encrypt」を選びます。

  • ドメインが正しく解決され 80 番ポートに到達できるなら「ファイル検証」を、CDN 利用中や 80 番が使えない場合は「DNS 検証」を選び、表示された TXT レコードを追加します;
  • 証明書に含めるドメイン(ルートと www)にチェックを入れます;
  • 「申請」をクリックして数十秒待つと、証明書がサイトに自動で設定されます。

Let's Encrypt 証明書の有効期間は 90 日で、パネルのスケジュールタスクにより期限前に自動更新されます。有効期限は次のコマンドで確認できます。

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -issuer -dates

ステップ5:HTTPS を強制する

証明書の設定後、SSL タブの「Force HTTPS(HTTPS 強制)」をオンにすると、HTTP へのアクセスがすべて HTTPS に 301 リダイレクトされます。パネルはサイトの Nginx 設定に次のようなルールを追加しています。設定を手動編集している場合は、server ブロックに自分で追加することもできます。

if ($server_port !~ 443){
    rewrite ^(/.*)$ https://$host$1 permanent;
}

リダイレクトを確認します。

curl -I http://example.com

301 Moved Permanently と、https を指す Location が返れば成功です。WordPress などでサイト URL が http のままになっている場合は https に変更し、混在コンテンツの警告を防ぎましょう。

よくある質問

Let's Encrypt の検証に失敗します。

ドメインがこのサーバーの IP に解決されているか、ファイアウォールで 80 番ポートが開いているか、/.well-known/ へのアクセスを禁止するルールやホットリンク防止がないか、CDN プロキシが前段にないかを確認してください。DNS 検証に切り替える方法もあります。

HTTPS 強制をオンにしたら「リダイレクトが多すぎます」と表示されます。

CDN の SSL モードが「Flexible」で、オリジンへ HTTP で接続していることが主な原因です。CDN の SSL モードを「Full」に変更するか、一時的に HTTPS 強制をオフにして確認してください。

証明書が自動更新されませんでした。

パネルの「Cron(スケジュールタスク)」に更新タスクがあり正常に実行されているか、期限前に DNS や 80 番ポートの設定が変わっていないかを確認してください。SSL タブから手動で更新することもできます。

解決しない場合は、ドメイン名とエラーメッセージを添えてチケットを送信し、IMIDC の 24時間365日テクニカルサポートへお問い合わせください。

この回答はお役に立ちましたか?

関連チュートリアル