ドメインのカスタマイズ

デベロッパー ポータルを作成するとき、デフォルトでは、ライブポータルへのアクセス用に次の形式の Apigee サンプル ドメイン名が提供されます。

https://orgname-portalname.apigee.io

ここで、orgname は組織名、portalname はポータル名をすべて小文字に変換してスペースとダッシュを削除したものです。

デベロッパー ポータルをリリースする前に、独自のカスタム ドメイン名を用意することをおすすめします。たとえば、次のように指定するのが一般的です。

https://developers.example.com

SAML ID プロバイダでカスタム ドメインを使用する場合の考慮事項については、SAML プロバイダでカスタム ドメインを使用するをご覧ください。

以降のセクションでは、Apigee EdgeApigee ハイブリッドのどちらを使用するかに基づいてドメインをカスタマイズする方法について説明します。

ドメイン名をカスタマイズする(Apigee Edge)

Apigee Edge 統合ポータルでドメイン名をカスタマイズするには、次の手順を行います。

  1. ドメイン名を登録します
  2. TLS を構成します
  3. カスタム ドメイン名をポータルに追加します
  4. DNS を構成します

カスタム ドメインを追加した後、それを編集または無効化できます。問題のトラブルシューティングについては、カスタム ドメインのトラブルシューティングをご覧ください。

ステップ 1: ドメイン名を登録する

新しいドメイン名の登録が必要な場合は、Google Domains を初めとするドメイン登録サイトが多数ありますので、そのいずれかをご利用ください。ドメイン登録サイトは自由にお選びいただけます。

ドメイン名を決定する際は、ユーザー フレンドリーで意味のわかる URL を使用することが、検索エンジン最適化を向上させるうえで重要であることを考慮してください。詳細については、検索エンジン最適化(SEO)を実施するをご覧ください。

ステップ 2: TLS を構成する

HTTPS をサポートするには、必要なデジタル証明書を含むキーストアとエイリアスをポータル環境に作成して TLS を構成する必要があります。そのためには、次の手順に従います。

TLS を構成するには:

  1. Google Trust Services などの信頼できる認証局から TLS 証明書を購入します。認証局は自由にお選びいただけます。
  2. https://apigee.com/edge にログインします。
  3. ユーザー プロフィール メニューから組織を選択します。
  4. [Admin] > [Environment] を選択して環境構成を表示します。
  5. [TLS Keystores] タブを選択します。
  6. 環境プルダウンから [portal] を選択します。
    ポータル環境
  7. Edge UI を使用したキーストアとトラストストアの作成に従って、キーストアとエイリアスを作成します。

ステップ 3: カスタム ドメイン名をポータルに追加する

カスタム ドメイン名をポータルに追加すると、(カスタム ドメイン名を api.example.com などのエンドポイントに適用する場合と同じ機能を使用して)次のリソースが自動的に作成されます。

  • 指定したカスタム ドメイン名を使用してポート 80 をリッスンする仮想ホスト

  • カスタム ドメイン URL を使用し、そのターゲット エンドポイントがデフォルト ポータル ドメインに設定された API プロキシ
    この API プロキシの名前は、カスタム ドメイン名に含まれるピリオドをアンダースコアに置き換えたものです。この API プロキシはポータル環境にデプロイされます。

カスタム ドメイン名をポータルに追加するには:

  1. [Publish] > [Portals] を選択し、目的のポータルを選択します。
  2. 上部のナビゲーション バーにあるプルダウン メニューまたはランディング ページで [Settings] を選択します。
  3. [Domains] タブをクリックします。
  4. [Custom Domain] にある次の項目のオプションを選択します。
    項目 説明
    キーストア プルダウン リストからキーストアを選択します。

    : このリストには、ポータル環境にすでに作成されているキーストアが含まれます。

    まだキーストアを作成していない場合は、[Create a Keystore] をクリックし、TLS を構成するの手順に従ってください。

    エイリアス プルダウン リストから有効なエイリアスを選択します。

    : このリストには、選択したキーストアに対してすでに作成されているエイリアスが含まれます。無効な証明書チェーン、Apigee ドメイン、またはトラストストアを持つキーストアは含まれません。

    証明書の有効期限を調べるには:

    • 次のアイコンを確認します。
      • 証明書は有効 証明書の有効期限までの日数が 30 日を超えている、または選択したカスタム ドメインはすでに使用されている可能性があります。
      • 30 日以内に証明書の有効期限が切れる 30 日以内に証明書の有効期限が切れます。
      • 証明書は期限切れ 証明書の有効期限が切れています
    • エイリアスにカーソルを合わせると、証明書の有効期限日数が表示されます。
    ドメイン プルダウン リストからドメインを選択します。ワイルドカード エイリアスを選択した場合は、サブドメインを入力します。

    注: ドメインのリストには、選択したエイリアスによって定義されているチェーンの最上位証明書の一般名と代替名が含まれます。

    すべての項目でオプションを選択すると、[Custom Domain] のステータス アイコンが次のように更新されます。
    ステータス 説明
    有効ステータス キーストア、エイリアス、カスタム ドメインは有効です。
    30 日以内に証明書の有効期限が切れる 30 日以内に証明書の有効期限が切れます。
    無効ステータス キーストア、エイリアス、カスタム ドメインは無効です。
    また、DNS 構成が検証され、[Configure DNS] ステータス アイコンが次のように更新されます。
    ステータス 説明
    有効ステータス DNS 構成は有効です。
    無効ステータス DNS 構成が無効です。DNS の構成の説明に従って、DNS を構成する必要があります。
  5. [Always redirect HTTP to HTTPS] が有効になっていることを確認します。
  6. [Enable] をクリックします。
    カスタム ドメインまたは DNS 構成が無効であっても、カスタム ドメインを有効にすることは可能です。

ステップ 4: DNS を構成する

次に、{org_name}-portal.apigee.net を指す正規名(CNAME)レコードをドメインの DNS に追加する必要があります。

CNAME の値を確認するには:

  1. [Publish] > [Portals] を選択し、目的のポータルを選択します。
  2. 上部のナビゲーション バーにあるプルダウン メニューまたはランディング ページで [Settings] を選択します。
  3. [Domains] タブをクリックします。
  4. 次の図に示すように、[Configure DNSE] セクションに組織の CNAME 値が表示されています。 DNS の構成

上記のカスタム ドメイン(つまり、myorg 組織の developers.example.com カスタム ドメイン)に対して構成する CNAME レコードの例を次に示します。

developers.example.com. CNAME myorg-portal.apigee.net.

カスタム ドメインのトラブルシューティング

このセクションでは、カスタム ドメインのトラブルシューティングに関して詳しく説明します。

トラブルシューティング: Dig を使用してドメインの DNS 設定を確認する

ドメインの DNS に CNAME レコードを追加して DNS を更新した後、その変更が世界中の DNS サーバーに反映されるまでしばらく時間がかかります。他の DNS サーバーに変更が完全に反映される前であっても、dig を使用してドメインの DNS サーバーに問い合わせを行えば、CNAME レコードが正しく設定されているかどうかを確認できます。

たとえば、次の dig コマンドはドメインの DNS サーバーに対してクエリを行います。コマンド出力の ANSWER SECTION に CNAME レコードのエントリが含まれます。

$ dig @your.domain.dns developer.mycompany.com
; <<>> DiG 9.8.3-P1 <<>> @your.domain.dns developer.mycompany.com
; (1 server found)
;; global options:  cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41356
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;developer.mycompany.com.       IN  A

;; ANSWER SECTION:
developer.mycompany.com.    29  IN  CNAME   myorg-portal.apigee.net.

;; Query time: 141 msec
;; SERVER: 192.168.1.254#53(192.168.1.254)
;; WHEN: Mon Mar 20 16:41:59 2017
;; MSG SIZE  rcvd: 136

トラブルシューティング: ホストのプロキシを特定できない

ポータルにカスタム ドメイン名を追加すると、ターゲット エンドポイントがデフォルト ポータル ドメインに設定されたカスタム ドメイン URL を使用する API プロキシがデフォルトで生成されます。カスタム ドメインに関連付けられた API プロキシを変更または削除すると、カスタム ドメインの構成が無効になり、カスタム ドメイン URL にアクセスしようとすると Unable to identify proxy for host エラー メッセージが表示されます。例:


{"fault":{"faultstring":"Unable to identify proxy for host: developers.mycompany.com:443 and url: \/","detail":{"errorcode":"messaging.adaptors.http.flow.ApplicationNotFound"}}}

変更または削除した API プロキシのカスタム ドメインの構成を復元するには:

  1. [Publish] > [Portals] を選択し、目的のポータルを選択します。
  2. 上部のナビゲーション バーにあるプルダウン メニューまたはランディング ページで [Settings] を選択します。
  3. [Domains] タブをクリックします。
  4. [Save] をクリックして API プロキシを復元します。

ドメイン名をカスタマイズする(Apigee ハイブリッド)

Apigee ハイブリッド統合ポータルでドメイン名をカスタマイズするには、次の手順を行います。

  1. ドメイン名を登録する
  2. Compute VM インスタンスを作成する
  3. Cloud DNS エントリを作成する
  4. VM インスタンスに NGINX ウェブサーバーをインストールして構成する
  5. SSL 証明書を作成する(省略可)
  6. デフォルトのルール構成を更新する
  7. NGINX 構成を更新する
  8. ポータルでカスタム ドメインを有効にする

ステップ 1: ドメイン名を登録する

新しいドメイン名の登録が必要な場合は、Google Domains を初めとするドメイン登録サイトが多数ありますので、そのいずれかをご利用ください。ドメイン登録サイトは自由にお選びいただけます。

ドメイン名を決定する際は、ユーザー フレンドリーで意味のわかる URL を使用することが、検索エンジン最適化を向上させるうえで重要であることを考慮してください。詳細については、検索エンジン最適化(SEO)を実施するをご覧ください。

:

  • カスタム ドメイン名には「apigee」という文字列を使用しないでください。
  • 他のよく似た代替ドメイン名にリダイレクトすることを検討してください。

ステップ 2: Compute VM インスタンスを作成する

Compute VM インスタンスを作成するには、VM インスタンスの作成と起動に記載されている手順に従います。以下の説明に従って項目を構成してください。

説明
項目
名前 Compute VM インスタンスのわかりやすい名前を入力します。
ブートディスク [Google Drawfork Debian JSON/Linux 9](デフォルト)を選択します。
ファイアウォール 両方のタイプのネットワーク トラフィックをサポートするには、[HTTP トラフィックを許可する] と [HTTPS トラフィックを許可する] を選択します。
外部 IP アドレス 外部 IP アドレスを構成します。詳細については、静的外部 IP アドレスの予約をご覧ください。
  1. [管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] セクションを展開します。
  2. [ネットワーク] をクリックします。
  3. [ネットワーク インターフェース] で、デフォルトのネットワーク インターフェースをクリックして編集します。
  4. [外部 IP] プルダウンで [IP アドレスを作成] を選択します。
  5. わかりやすい IP アドレスの名前を入力します。
  6. [作成] をクリックします。
    IP アドレスが作成され、予約されます。
  7. IP アドレスはメモしておいてください。次のステップで使用します。

ステップ 3: Cloud DNS エントリを作成する

Cloud DNS ゾーンを作成するには、ゾーンの管理の手順に従います。以下の説明に従って項目を構成してください。

項目 説明
ゾーンのタイプ [公開] を選択します。
ゾーン名 ゾーンのわかりやすい名前を入力します。例: mycompany-zone
DNS 名 所有しているドメイン名を使用してゾーンのサフィックスを入力します。例: mycompany.com

ゾーンを作成したら、[ゾーンの詳細] ページで [レコードセットを追加] をクリックし、レコードの管理の手順に従います。以下の説明に従って項目を構成してください。

項目 説明
DNS 名 DNS 名の接頭辞を指定します。Cloud DNS ゾーンに定義したサフィックスも表示されますが、編集することはできません。例: developers.mycompany.com
リソース レコードのタイプ [A](デフォルト)を選択します。
TTL 目的の値に設定するか、[5](デフォルト)のままにします。
TTL ユニット 目的の値に設定するか、[](デフォルト)のままにします。
IPv4 アドレス Compute VM インスタンスの作成時に構成した外部 IP アドレスを入力します。

ステップ 4: VM インスタンスに NGINX ウェブサーバーをインストールして構成する

NGINX ウェブサーバーを VM インスタンスにインストールするには:

  1. インスタンスへの接続の説明に従って、SSH を使用して VM インスタンスに接続します。
  2. NGINX ウェブサーバーをインストールします。

    sudo apt-get install nginx 

    プロンプトが表示されたら、「Y」と入力してインストールを確定します。

  3. NGINX がインストールされていることを確認します。

    curl localhost

    Welcome to nginx! HTML ページのコンテンツが返されます。

  4. Compute VM インスタンスの作成時に構成した外部 IP アドレスにアクセスできることを確認します。

    curl _external-ip-address

    Welcome to nginx! HTML ページのコンテンツが返されます。

外部 IP アドレスへの接続に失敗した場合:

  • VM インスタンスのファイア ウォール構成が [HTTP トラフィックを許可する] と [HTTPS トラフィックを許可する] の両方に設定されていることを確認します。ステップ 2: Compute VM インスタンスを作成するをご覧ください。
  • ファイアウォール ルールの構成の説明に従ってファイアウォール ルールを構成し、タグの追加の説明に従って VM インスタンスに追加する必要があります。以下の説明に従って項目を構成してください。

    項目 説明
    名前 わかりやすい名前を入力します(例: http-to-portal
    ネットワーク [デフォルト](デフォルト)を選択します。
    方向 [上り](デフォルト)を選択します。
    一致したときのアクション [許可](デフォルト)を選択します。
    ターゲット [指定されたターゲットタグ](デフォルト)を選択します。
    ターゲット タグ わかりやすいタグ名を入力します(例: http-to-portal
    ソースフィルタ [IP 範囲] を選択します。
    ソース IP の範囲 0.0.0.0/0」と入力します。
    プロトコルとポート [指定したプロトコルとポート] を選択します。
    プロトコルに [tcp] を選択し、ポートに「80,443」と入力します。

カスタム ドメインにマッピングするように NGINX サーバーを構成するには:

  1. 任意のエディタを使用して /etc/nginx/conf.d/hostname.conf という名前のファイルを作成します。例:

    sudo nano /etc/nginx/conf.d/developers.conf

  2. 次の内容を入力します。your-custom-domain-namedevelopers.mycompany.com などのドメイン名に置き換えます。

    server {
        listen        80;
        server_name   your-custom-domain-name;
        server_tokens off;
    #default rule location / { proxy_pass http://localhost; } }

  3. NGINX ウェブサーバーを再読み込みします。

    sudo nginx -s reload

  4. ドメイン名にアクセスできることを確認します。

    curl your-custom-domain-name

    [Welcome to NGINX] HTML ページが返されることを確認します。

ステップ 5: SSL 証明書を作成する(省略可)

: この手順は省略可能です。

SSL 証明書を作成するには:

  1. 「Let's Encrypt」をインストールします。

    sudo apt-get install certbot python-certbot-nginx

    プロンプトが表示されたら、「Y」と入力してインストールを確定します。

  2. SSL 証明書を作成し、ドメインの NGINX にインストールします。

    sudo certbot --nginx

    次のようにプロンプトに応答します。

    プロンプト レスポンス
    Enter your email address(メールアドレスを入力してください) メールアドレス
    Read and agree to the terms of service(利用規約を確認、同意してください) A
    Consent to or decline sharing your email address with the Electronic Frontier Foundation(ご自分のメールアドレスが電子フロンティア財団に提供されることに同意または拒否してください) Y または N
    Enter the numbers corresponding to the domains names for which you'd like to activate HTTPS (separated by commas)(HTTPS を有効にするドメイン名に対応する番号をカンマで区切って入力してください) 1
    Choose whether or not to redirect HTTP traffic to HTTPs(HTTP トラフィックを HTTPS にリダイレクトするかどうかを選択してください) 2(リダイレクトする)

    証明書とチェーンが作成されます。また、/etc/nginx/conf.d/hostname.conf ファイルは SSL 証明書に関する情報で更新されます。ファイル内の関連する行に次のようなコメントが表示されます。# managed by Certbot

  3. HTTPS 経由でドメイン名にアクセスできることを確認します。

    curl https://your-domain-name

ステップ 6: デフォルトのルール構成を更新する

/etc/nginx/conf.d/hostname.conf ファイルを編集して、#default rule を次の内容に置き換えます。

以下のコンテンツの上部にある 3 つの変数を、カスタム ドメインとポータルに関連する値に置き換えます。

変数 説明
$my_custom_domain カスタム ドメイン。例: developers.mycompany.com
$my_portal 統合ポータルのデフォルトのドメイン名。例: orgname-portalname.apigee.io
$my_idp ライブポータルに移動し、[Sign in] をクリックして、表示された URL からドメイン名をコピーします。例: wtupohzhfghzszv-ppgfvtqop14v7gii.accounts.apigee.io

: 変数の定義に https:///login を含めないでください。

# set the variable values
    set $my_custom_domain your-custom-domain-name;
    set $my_portal your-portal-domain-name;
    set $my_idp portal-sign-in-domain-name;

    #portal IDP rule
    location ~ ^/accounts/(.*)$ {
        proxy_pass https://$my_idp/$1$is_args$args;
        proxy_set_header x-apigee-cname $my_custom_domain;
        proxy_redirect  https://$my_idp https://$my_custom_domain/accounts;
    }

    #default rule
    location / {
        proxy_pass https://$my_portal;
        add_header Set-Cookie "portalDefaultDomain=${my_portal};Domain=${my_custom_domain};Path=/;Max-Age=100000";
    }

ステップ 7: NGINX の構成を更新する

/etc/nginx/nginx.conf ファイルを編集して、NGINX による DNS エントリの検索を可能にするリゾルバを追加します。http 構成の最初の行として、リゾルバを Google Public DNS の IP アドレスである 8.8.8.8 に設定します。例:

...
http {
   resolver 8.8.8.8;
...

ステップ 8: ポータルでカスタム ドメインを有効にする

ポータルでカスタム ドメインを有効にするには:

  1. [Publish] > [Portals] を選択し、目的のポータルを選択します。
  2. 上部のナビゲーション バーにあるプルダウン メニューまたはランディング ページで [Settings] を選択します。
  3. [Domains] タブをクリックします。
  4. カスタム ドメイン名を入力します。
  5. [Enable] をクリックします。

ブラウザでカスタム ドメインにアクセスすると、統合ポータルにリダイレクトされることをテストします。

カスタム ドメインを編集する

カスタム ドメインを編集するには:

  1. [Publish] > [Portals] を選択し、目的のポータルを選択します。
  2. 上部のナビゲーション バーにあるプルダウン メニューまたはランディング ページで [Settings] を選択します。
  3. [Domains] タブをクリックします。
  4. カスタム ドメインの情報を編集します。
  5. [Save] をクリックします。

カスタム ドメインを無効にする

カスタム ドメイン名とそれに関連付けられた仮想ホストと API プロキシを無効にするには:

  1. [Publish] > [Portals] を選択し、目的のポータルを選択します。
  2. 上部のナビゲーション バーにあるプルダウン メニューまたはランディング ページで [Settings] を選択します。
  3. [Domains] タブをクリックします。
  4. [Disable] をクリックします。
  5. 操作の確認を求めるメッセージで [Disable] をクリックします。

カスタム ドメインが無効になり、フィールドがクリアされます。