リセラー(ホワイトラベル)
管理画面の場所: Customers › Resellers › List (
/resellers), Domains & SSL (/resellers/domains), Permissions & wholesale (/resellers/entitlements), Defaults (/resellers/settings)。リセラー枠: System › Admin › License & updates (/license)。
動作内容
リセラーは、顧客ポータルのブランド適用版を自身の独自ドメイン上で取得し、独自の顧客、ウォレット、価格、そして(必要に応じて)決済チャネルを利用できます。リセラーは卸売価格で仕入れ、独自の価格で販売します。リセラーの顧客があなたのブランドを目にすることは一切なく、リセラーのドメインからあなたの管理コンソールを開くこともできません。リセラーは https://partner.<your-domain> にあるパートナーコンソールからビジネスを運営します。
要件
| 項目 | 要件 |
|---|---|
| ライセンス | カスタムリセラーの独自ドメインごとに、ライセンス上のリセラー枠が1つ必要です。ライセンスページには used/max 枠と追加購入用のリンクが表示されます。空き枠がない場合、「Out of license reseller domain slots」というエラーでドメインの追加に失敗します。 |
| DNS | 各リセラーのドメインは、サーバーを指すように設定する必要があります(下記参照)。 |
| WebサーバーとTLS | ホスト名は、その名前に対応する有効な証明書を備えたリバースプロキシ経由で、NexCMPパネルに到達する必要があります。 |
| メール | 招待メールおよび通知メール用にSMTPが設定されていること。 |
| マスタースイッチ | Reseller settings › General › rs_enabled がデフォルトで有効になっていること。 |
インフラストラクチャの準備
サーバーの公開アドレスを決定します:IPv4アドレス、およびCNAMEを使用する場合はそれを指すホスト名(例:
sites.cloud.example.com)。Customers › Resellers › Defaults (
/resellers/settings)、グループ Domains & SSL を開き、以下を設定します:キー 意味 rs_server_ipv4リセラーのAレコードが向かうべき公開IPv4。 rs_cname_targetリセラーのCNAMEレコードが向かうべきホスト名。 rs_master_hosts自身のメインサイトに属するホスト名(リセラーに割り当てることはできません)。 rs_platform_domainpartners.cloud.example.comでリセラーにacme.partners.cloud.example.comを付与するための、プラットフォームサブドメイン用のオプショナルな親ドメイン。空欄にすると無効になります。rs_sites_stale_minutes証明書サービスが古いと見なされるまでの分(デフォルト15)。 rs_ssl_fail_hoursエラーが発生するまでの失敗試行の時間(デフォルト48)。 指示を送信する前にこれらの値を確認してください
rs_server_ipv4、rs_cname_target、およびrs_master_hostsにはサンプル値が設定されています。リセラーにDNSの手順を案内する前に、これらを独自のサーバーとドメインに置き換えてください。そうしないと、画面上の手順が誤った場所を指すことになります。Save をクリックします(理由の入力が求められます)。
リバースプロキシがリセラーのホスト名をNexCMPパネルに転送し、それぞれに対して証明書を提供していることを確認してください。インストーラーは、メインドメイン(および解決可能な
admin.とpartner.の名前)に対してのみ、nginxとLet's Encryptを設定します。Cloudflareを使用する場合は、ホスト名をプロキシし、フルSSLモードを使用してください。
NexCMP での接続
リセラーの作成
Customers › Resellers › List を開き、New reseller をクリックします。このウィザードは8つのステップで構成され、最後にすべてがプロビジョニングされます。各ステップは安全にやり直すことができます。
ステップ 入力項目 Reseller 法的名称または屋号、スラッグ(a〜z、0〜9、または -の4〜31文字で、英字で始まるもの。請求書のプレフィックスにもなります)、担当者名、メールアドレス、電話番号、デフォルト言語、リセラーの請求詳細(ウォレットチャージの購入者として)。Console account ユーザー名、アカウントのメールアドレス、氏名;Send a one-time invite link by e-mail(72時間有効、推奨)または一時パスワードを一度だけ表示。 Brand ブランド名、短縮名、タグライン、プライマリカラー、サポートのメールアドレスと電話番号、顧客向け請求書に記載される販売者名、ロゴ(ライトおよびダーク背景)、正方形マークとファビコン:PNG、JPEG、WEBP、またはICO(256 KBまで、SVG不可)。 Domains wwwありを含めた顧客ドメイン、どれをプライマリにするか、テストドメイン(sslip.io)およびドライランオプション、またはプラットフォームサブドメイン。ウィザードにはDNS OK / DNS not readyの状態と作成すべきレコードが表示されます。 Pricing & wallet 卸売割引率 (%)、小売下限 (リスト価格の %)、デフォルトマークアップ (%)、クレジット限度額、初期残高、残高不足アラート、顧客・VM・ドメインの制限、サイト機能 (顧客登録、DDoS保護、サポートチケット、カスタムプラン、リサイズ、Auto Scaling)。 Payment channels 顧客の支払いを受領する主体 (下記参照)、およびオプションの独自PayPalと独自ベトナム銀行振込。 Email 送信者名とReply-To。ResellerドメインのDKIMが設定されるまで、Fromアドレスはプラットフォームのアドレスのままになります。 Review すべてを確認して Provision everything をクリックするか、Save draft (provision later) を選択します。 プロビジョニングはバックグラウンドで続行されます (30秒ごと)。リセラーを開いて進捗を確認し、ステップが失敗した場合は Continue provisioning または Retry を使用します。

DNSの設定 (リセラー側で行います)
リセラー (またはお客様) が Domains & SSL タブに表示されるレコードを作成します:
| レコード | Name | 値 |
|---|---|---|
| TXT (所有権確認、初回のみ) | _site-verify.<domain> | sv=<token>画面に表示されます |
A (shop.example.net などのアペックスドメイン) | ドメイン | お客様の rs_server_ipv4 |
CNAME (cloud.example.net などのサブドメイン) | ドメイン | お客様の rs_cname_target (または rs_server_ipv4 へのAレコード) |
| CNAME (オプション) | www.<domain> | お客様の rs_cname_target |
その他:
- サーバーがそのIPv6アドレスで応答しない限り、すべての AAAA (IPv6) レコードを削除します。
- ドメインの検証中は、CDNプロキシをオフ (グレーの雲) にします。
- ドメインに CAA レコードがある場合は、
letsencrypt.orgを許可してください。
TXTレコードのトークンはドメインごとに異なります。画面からコピーしてください。システムは最初の48時間は5分ごとに、その後は1時間ごとにDNSを再チェックし、72時間経過してもTXTレコードが見つからない場合は名前を解放します。
ドメインの状態
Customers › Resellers › Domains & SSL (すべてのリセラー) およびリセラーの Domains & SSL タブ:
| 状態 | 意味 |
|---|---|
pending_verify | TXTレコードを待機しています。 |
pending_dns / verifying | AまたはCNAMEがこちらを指すのを待機しています。 |
issuing | 証明書を発行中です。 |
active | リセラーのサイトを提供しています。 |
cert_expiring | 証明書の有効期限が近づいています。更新が必要です。 |
dns_lost | DNSがこちらを指さなくなりました。30日後にドメインが削除されます。 |
error | エラーコードを確認し、修正後に Retry を実行してください。 |
removing / removed | 削除処理中です。ライセンス枠が返還されます。 |
行のアクション: Check now、Retry、Make primary、Test mode (テストドメイン用)、Remove。
権限と卸売設定
Customers › Resellers › Permissions & wholesale (/resellers/entitlements) はマトリックスです。リセラーごとに1行あり、卸売の割引率(discount)とマークアップ、およびサービスごとに1つのスイッチ(例:DDoS ShieldやVPN)が用意されています。スイッチはプラットフォーム全体の機能が有効な場合に編集可能になり、そうでない場合は読み取り専用で設定へのリンクが表示されます。Top-up codesサブタブでは、各リセラーが毎月発行できるコードの数を設定します(Promotionsを参照)。
価格設定ルール:
- 卸売価格 = 定価 x (1 - 割引率) であり、リセラーのWholesale pricingタブでプランごとおよび請求サイクルごとに上書きできます。
- リセラーは小売価格を設定しますが、フロア(定価に対するパーセンテージ)を下回ることはできません。
- 顧客が購入した際、卸売価格はリセラーのウォレットから支払われます。ウォレットには、クレジット枠、猶予期間、および当座貸越の上限があります(Defaultsを参照)。
Defaults
Customers › Resellers › Defaults (/resellers/settings) は、すべてのかけられたリセラーに適用される rs_* キーです。変更にはそれぞれ理由の入力が求められ、監査ログに記録されます。
| Group | キー | デフォルト | 意味 |
|---|---|---|---|
| General | rs_enabled | 1 | リセラープログラムの有効化。 |
rs_platform_collect_enabled | 0 | プラットフォームがリセラーの代わりに顧客からの支払いを回収できるようにします。法的な確認を行った上で有効化してください。 | |
rs_totp_required | 1 | リセラーコンソールの اکاؤنٹ は二要素認証を使用する必要があります。 | |
rs_agreement_version | 1 | 同意が必要なリセラー規約のバージョン。 | |
| Default pricing | rs_default_discount_bp | 2000 (20 %) | 新規リセラー向けの卸売割引率(ベーシスポイント、0〜9000)。 |
rs_default_markup_bp | 2500 (25 %) | デフォルトのマークアップ(0〜50000)。 | |
rs_default_floor_bp | 9000 (90 %) | 小売フロア価格(0〜20000)。 | |
rs_default_max_domains | 3 | リセラーごとに許可されるドメイン数。 | |
| Wallet and payouts | rs_grace_hours | 72 | リセラーのウォレット残高が枯渇した際に、顧客のサービスに影響が出るまでの猶予期間。 |
rs_overdraft_cap_cents | 5000 | ウォレットでの当座貸越の許可。 | |
rs_retention_days | 14 | 閉鎖されたリセラーのVMが削除されるまでの日数。 | |
rs_payout_hold_days | 30 | 手数料が引き出し可能になるまでに保持される日数。 | |
rs_payout_min_cents | 5000 | 最小出金額。 | |
rs_topup_min_cents | 2000 | リセラーによる最小ウォレットチャージ額。 | |
| Payments and mail | rs_webhook_base | empty | リセラーゲートウェイのWebhook用の公開ベースURL(空の場合はサイトURLを使用)。 |
rs_mail_from | empty | リセラーメールの送信元アドレス。 | |
rs_invoice_show_processor | 1 | 請求書に決済プロセッサーを表示する。 | |
rs_gw_stripe_enabled, rs_gw_usdt_enabled | 1 | リセラーが独自のStripeまたはUSDTを設定できるかどうか。 |
お客様の支払いを収集する主体
| モード | 意味 |
|---|---|
| Reseller collects (own channels) — デフォルト | リセラーは独自のStripe、PayPal、USDT、または銀行口座を接続します。そのWebhookは https://<reseller-domain>/v1/billing/<gateway>/webhook/r/<id> です。保存されたカードおよび auto top-up は、これらのサイトでは利用できません。 |
| Platform collects | あなたの決済チャネルがリセラーサイトに表示されます。rs_platform_collect_enabled = 1 までロックされています。 |
| Mixed | チャネルごとに選択される組み合わせ。 |
再販業者の表示画面
https://partner.<your-domain> にあるパートナーコンソールには、Overview、Reports、Customers、VMs、Tickets、Orders、Payments、Prices、Brand、Landing & legal、Domains & SSL、Email、Wallet、Payment channelsがあります。コンソールアカウントの役割は、reseller(フルアクセス)または staff(読み取り専用)です。ご自身で確認するには、該当するリセラーを開いて Sign in to partner console をクリックします。60分間アクセスでき、すべての書き込み操作は管理者ログとリセラーログの両方にあなたの名前で記録され、金銭に関する操作には2段階目の確認が必要です。
確認
- プロビジョニング後、リセラーのリスト行には active と緑色の Provisioning 列が表示されます。
- ブラウザでリセラーのドメインを開きます。リセラー独自のブランドが適用されたログインページが表示されます。
https://<reseller-domain>/adminは 404 を返します。 - そのドメインでテスト顧客を登録します。顧客は Customers › List に表示され、Site 列にリセラーが表示されます。
- ライセンスページの使用済みスロットが1つ増えます。
制限と注意事項
- カスタムまたはテストドメインごとに1つのライセンススロットが必要です。プラットフォームのサブドメインはスロットを使用しません。
- リセラーを停止してもデータは保持されます。Close reseller ではすべてのドメインスロットが返還され、VMの破棄は保持期間経過後のみ許可されます。
- リセラーの顧客はあなたの顧客リストに表示され、他の顧客と同様にログインして代理操作(インペソネーション)を行うことができます(リンクはリセラーのドメインで開きます)。
- リセラーは、あなたの決済チャネル、デフォルトのクォータ、または他のリセラーを表示・変更することはできません。
トラブルシューティング
| 症状 | 原因 | 対処法 |
|---|---|---|
| ライセンスのリセラー・ドメイン・スロットが不足しています | すべてのスロットが使用中 | スロットを解放(ドメインを削除)するか、ライセンスページで追加購入してください。 |
ドメインが pending_verify の状態で停止しています | TXTレコードがありません | 表示どおりにTXTレコードを作成し、Check now を使用してください。 |
ドメインが pending_dns の状態で停止しています | A/CNAMEレコードがあなたを指していない、AAAAレコードが存在する、またはCDNプロキシが有効になっている | DNSを修正し、プロキシをオフにしてから、Check now を実行してください。 |
error 状態 | 行のエラーコードを確認してください(Let's EncryptをブロックしているCAA、レートリミットなど) | 修正して Retry をクリックしてください。 |
| ホストが不明であるか、「421」というエラーがブラウザに表示されます | ホスト名がライセンスに登録されていないか、パネルにルーティングされていません | リセラー経由でドメインを追加し(スロットを消費します)、リバースプロキシを修正してください。 |
| 手順に誤ったIPまたはホストが表示される | rs_server_ipv4 / rs_cname_target にサンプル値が残っています | Defaultsで設定してください。 |
| リセラーがプラットフォーム収集を有効にできない | ロックされています | 法的審査の完了後に rs_platform_collect_enabled を設定してください。 |