Salesforceのカスタムドメイン移行についてまとめ

# はじめに
salesforceのアップデートにより
今後拡張ドメインが適応されることになりました

https://qiita.com/wagateee/items/fe67b51816d7c747f22e

これを機に、サービスコミュニティーサイトのURLを移管することにしました
その方法を記録していきます

# ★事前準備しよう
## 事前に決めておくべきこと
### ドメインを決める
任意のドメインを定めます。
正直何でもよいですが、僕らの場合は
1. なるべく短いドメイン
   - examplehogehogesearvice.comとかよりは、exp.comとかのほうが覚えやすいから
1. コストの低いドメイン
   - あまりにも短すぎるドメインだとプレミアム価格（数十万～）になるので避ける
 
で検討しました。

### ドメインの管理場所を決める
いわゆるＤＮＳサーバを何にするかです。
簡単に言うと、ドメインをどこで管理するか。
僕らはＡＷＳのroute53を使いましたが、
特に会社の中で前例がなければお名前ドットコムとかを使うのでいいのでは。

### SSL証明書の発行方法を決める
選択肢としては、
1. SalesforceCDN（＝Salesforceと提携しているAkamaiというサービス）を使う
    - 無料
    - 設定が楽
    - ネイキッドドメイン（exp.comなど、ドメインの前に'www.'などがつかないもの）が登録できない
1. 自分で認証局を選ぶ
    - クラウドフロントなど、有料のもの
    - 高いと月２万～１０万くらいする

という選択肢があります。僕らは１を選びました。

## 事前に用意するもの
SandBOX（＝テスト用の）環境


# ★SandBOX上で検証してみよう

### ドメインを登録する
本番環境の設定＞ドメイン＞新規ドメインから下記のページが見れます
ここでは、**（あなたが設定したドメイン）.（組織名）.live.siteforce.com**で構成されるCNAMEレコード①と
**_acme-challenge.（あなたが設定したドメイン）.（組織名）.live.siteforce.com**で構成されるCNAMEレコード②
をメモっときましょう。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/968569/d71e6229-5314-0f25-6cbc-329dc9270265.png)

:::note info
★ポイント
- テストするだけなので、ドメインはtest.www.example.comとか、sandbox.www.example.comとかにするのがおすすめ（example.com　の部分はみなさんのドメインを置き換えて、testとかsandboxの部分は、テキトーに任意の文字列で）
- 関連付けられた組織はみなさんのSandBOX環境にしましょう
- まだ保存を押してもエラーが出る状態です。注意
:::


### DNS設定を行う
指定されたCNAMEの値を、指定されたレコードに紐付けます
ここで先ほどメモったCNAMEレコードを使います
1. あなたが設定したドメインとCNAMEレコード①を紐づけて、このドメインの所有者＝このサイトの所有者であることを示しましょう
2. また、SalesforceCDNを設定するために、_acme-challenge.（あなたが設定したドメイン）とCNAMEレコード②を紐づけましょう
![スクリーンショット 2022-12-02 14.23.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/968569/e07a4e12-7911-88fa-cc89-2a351cadb60f.png)

:::note info
今回は、テスト用に使う「sandbox.（ドメイン名）」※緑枠　と本番用に使う「（ドメイン名）」※赤枠　の2つを先に設定しておきました
:::
:::note warn
SalesforceCDNを使用する際は、ドメイン名にはexp.comのようなネイキッドドメインが使えないらしく、
'www.exp.com' のように頭に何かついたドメインを使用しなくてはいけないみたいです
:::

### URLの登録を行う
**sandbox**環境の設定＞カスタムURLから新規URLの紐付けを行います
1. ドメイン名には先ほど入力したテスト用のドメインを
1. サイトには今回ドメインを変更したいサイト名
1. パスには、そのサイトのパスを入力します


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/968569/dcd53e5c-d076-e599-9f74-a53be4edc275.png)

:::note info
パスについては、「すべてのサイト」のURLから確認できます
https://（現状のサイトドメイン）/（この部分がサイトのパス）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/968569/cc999d05-0ef3-9c7a-2708-086e66d7f7ff.png)
:::

### SandBOX環境のエクスペリエンスサイトのドメインが新しくなっていることを確認する
上記URLの登録を行うと、自動的に
https://（現状のサイトドメイン）/（この部分がサイトのパス）**/s**
というURLも登録されます
![カスタム URL _ Salesforce.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/968569/79fa0679-3d62-a5d0-2f9b-6b68be234ce2.png)

### 本番環境にて、絶対パスが残っていないかを確認する
ここまでで、カスタムドメインをSalesforceサイトに適応するまでの流れをテスト環境で練習しました
ここからはいよいよ本番環境への適応を目指して、いろいろやっていきます
せっかくカスタムドメインを適応しても、サイトの内部に昔の形のURLが残っていてはいけません
主に昔のURLが記載されているのは
1. CMSコレクション
1. HTMLエディタ
1. お知らせメール
の3つです

##### CMSコレクションを修正する
1. デジタルエクスペリエンスホームから、1つ1つのコンテンツを開きます
1. Link to thumnailにフルパス（絶対パス https://(サイトの今のドメイン)/~~）が書かれている場合は
1. 相対パス（「https://(サイトの今のドメイン)」までを消し「/~~」だけにする）に変更する必要があります
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/968569/9a18365f-c58f-3455-a03b-b0261710bc96.png)

# ★実際に新しいドメインをリリースしてみよう
### ドメインの適応を本番環境に切り替える
##### 本番環境Salesforceにおいて、設定＞ドメイン＞ドメインを追加から本番用ドメインを追加
赤枠部分↓は、この記事の「★SandBOX上で検証してみよう」＞「DNS設定を行う」で既に設定したので気にしなくていいです。
関連付けられた組織は本番を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/968569/f0ed85d9-b574-587d-9eaf-7857f1c344d6.png)

##### 設定＞カスタムURL＞新規カスタムURLからドメインとサイトを関連付け
ドメイン→先ほど新規作成したドメイン
サイトとパスについては「URLの登録を行う」を参照
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/968569/373826d2-cc81-b044-0222-ed52d58106c5.png)