カスタムドメインの設定
EMQX Cloudでは、デプロイメントにカスタムドメインを設定でき、MQTTクライアントは所有するドメインを通じて接続できます。これは、安定したブランド化されたエンドポイントを提供し、EMQX CloudにそのドメインのTLS/SSL証明書の管理を任せたい場合に便利です。
注意
この機能はEMQX v5 Dedicatedおよびv5 Dedicated Flexのデプロイメントでのみ利用可能です。トライアルデプロイメント、サーバレス、v4デプロイメントではサポートされていません。
はじめに
以下の要件を満たしていることを確認してください。
- デプロイメントがEMQX v5 Dedicatedまたはv5 Dedicated Flexであり、トライアルデプロイメントではないこと。
- ドメインを所有しており、そのDNSレコードを管理できること。
- ドメインはサブドメインである必要があります。例:
mqtt.example.com
注意
*.example.comのようなワイルドカードドメインはサポートされていません。
TIP
証明書の発行や更新に関して厳格なコンプライアンス要件がある場合は、管理された証明書の代わりに独自の証明書をアップロードすることを検討してください。
カスタムドメインの設定手順
EMQX Cloudコンソールにログインし、対象のデプロイメントの概要ページに移動します。
MQTT接続情報セクションで、カスタムドメインをクリックします。
ドメインステップで、MQTTクライアントが接続に使用するカスタムドメインを入力します。
例:
textmqtt.example.com
次へをクリックしてDNSステップに進みます。コンソールに表示されるCNAMEレコードをDNSプロバイダーに追加し、カスタムドメインがデプロイメントのデフォルトエンドポイントを指すように設定します。
例(コンソールに表示されるホスト名に置き換えてください):
textmqtt.example.com CNAME h72937f5.ala.dedicated.aws.example.com
DNSレコードを追加したら、次へをクリックしてTLS/SSLステップに進み、EMQX Cloud管理を選択します。EMQX CloudがLet's Encryptの証明書を発行・更新します。
デフォルトでは、管理された証明書は自動更新に設定されています。必要に応じて、後でTLS/SSL設定から自動更新を無効化をクリックして自動更新をオフにできます。
::: caution 自動更新を無効化すると再度有効化できません。証明書の有効期限切れ前に手動で証明書を差し替える必要があります。 :::

コンソールに表示されるACME検証用のCNAMEレコードをDNSプロバイダーに追加します。
例:
text_acme-challenge.mqtt.example.com CNAME _acme-challenge.h72937f5.ala.dedicated.aws.example.com::: caution
_acme-challengeのCNAMEレコードは常に残しておいてください。削除すると証明書の更新に失敗する可能性があります。ドメインでCAAレコードを使用している場合は、
letsencrypt.orgが認可された発行者として登録されていることを確認してください。 :::DNSおよびTLS/SSLの設定が完了したら、検証して適用をクリックします。
設定の検証
設定適用後、以下の方法で検証してください。
デプロイメントの概要ページに戻り、接続情報にカスタムドメインが表示されていることを確認します。
ローカル環境からDNSレコードを確認します。LinuxやmacOSでは
digを使用します。bashdig mqtt.example.com CNAMEWindowsでは
nslookupを使用します。bashnslookup mqtt.example.com発行されたTLS/SSL証明書がカスタムドメインに一致していることを確認します。
bashopenssl s_client -connect mqtt.example.com:8883 -servername mqtt.example.comMQTTXなどのMQTTクライアントでカスタムドメインと対応するポートを使って接続をテストします。
- TCPでのMQTT:
1883 - TLS/SSLでのMQTT:
8883 - WebSocket:
8083 - TLS/SSLでのWebSocket:
8084
- TCPでのMQTT:
トラブルシューティング
デプロイメントの種類やプランがサポートされていません。
この機能はトライアルでないv5 Dedicatedおよびv5 Dedicated Flexデプロイメントのみ利用可能です。コンソールでデプロイメントの種類を確認してください。
設定したドメインが所有しているサブドメインではありません。
ドメインを所有し、DNSレコードを追加できる必要があります。ワイルドカードドメインはサポートされていません。
DNSレコードのタイプが間違っています。
コンソールに表示される正確なCNAMEレコードを使用してください。Aレコードや他のタイプは動作しません。
DNSの伝播がまだ完了していません。
レコード追加後5〜10分待ってから再試行してください。
digやオンラインのDNSチェッカーで伝播状況を確認できます。ACMEのCNAMEレコードが設定後に削除されています。
証明書の自動更新には
_acme-challengeのCNAMEレコードが常に必要です。削除された場合は再度追加してください。CAAレコードが証明書発行をブロックしています。
ドメインでCAAレコードを使用している場合は、
letsencrypt.orgを認可された発行者として追加してください。