2026年8月末、SendGrid の Link Branding に Auto SSL(証明書の自動発行)が追加されました(変更履歴)。
Gmail が2026年10月末までに非 HTTPS のリンクに警告を出すため、SendGrid はすべての Link Branding で有効にするよう勧めています。
それ以前に作った Link Branding は Auto SSL にならないので、作り直しが必要です。このとき、今のサブドメインを指定せずに作り直すと、送信済みメールのリンクがすべて切れます。 実際にやってしまった記録です。
起こったこと
- キャンペーンメールのリンクをスマホで開くと、「この接続ではプライバシーが保護されません」(
NET::ERR_CERT_COMMON_NAME_INVALID)と表示された - 本文のリンクは、SendGrid の Link Branding(クリック計測用の中継リンク)で
http://url1234.example.jp/ls/click?upn=...に書き換えられていた -
url1234の Link Branding に Auto SSL が入っておらず、証明書がなかった
リンクは http なのに、なぜ証明書エラーになったか
-
example.jpは HSTS をincludeSubDomains付きで返していた - 一度でも
example.jpを開いたことのあるブラウザは、サブドメインへの http のリンクも自動で https に置き換えて開く - そのため、
url1234に証明書がないと警告になる(example.jpを開いたことのないブラウザなら、http のまま開けていたはず) - 教訓:HSTS に
includeSubDomainsを付けているドメインでは、外部サービスに向けるサブドメインも必ず証明書付きにする
# HSTS の設定を確認する
curl -sI https://example.jp | grep -i strict-transport
なぜ Auto SSL になっていなかったか
- Link Branding を作ったのは2026年8月上旬。Auto SSL が追加される前だった
- そのとき登録したのは CNAME(
url1234→sendgrid.net)だけで、証明書用のレコードはなかった - 現在は作成画面(ドメイン認証のウィザードの中も含む)で Auto SSL が最初からオンになっている
- 既存の Link Branding は自動では Auto SSL にならない。削除して作り直す必要がある(SendGrid 公式)
- 別に運用しているドメインにも、Auto SSL になっていないものがあった。同じ時期より前に作った Link Branding は、みな同じ状態のはず
やってしまったこと
- 急いで、新しい Link Branding を Auto SSL 付きで作った
- サブドメインは自動で
url5678に採番された。サブドメインが変わるのは避けられないと思い込んでいた - 旧
url1234を SendGrid と DNS から削除した - その結果、送信済みのメールのリンクが開けなくなり、開封も記録されなくなった → メールを再送した
本当はこうすべきだった
- 作成画面の Advanced Settings(最初は折りたたまれている)→「Use a custom link subdomain」で、旧設定と同じ
url1234を指定できた - 旧名を指定できるのは、最初に作り直すときだけ。 新しい名前で作ってしまうと、あとから旧名を証明書付きで作ることはできない(次の節)
- 手順
- 旧 Link Branding を削除する(同じ名前は同時に2つ持てない)
- 同じサブドメインを指定し、「Auto provision SSL certificate」にチェックを入れて作り直す
- DNS の CNAME を、SendGrid が表示する新しい値に書き換える(向き先も変わる。例:
sendgrid.net→click.sendgrid.net) - 証明書用のレコード2件(
_acme-challenge.url1234の CNAME と_cf-custom-hostname.url1234の TXT)を追加する - Verify して、「SSL Certificate Available」になるまで待つ
- リンクが開けないのは、証明書が出るまでの数分だけ。配信予約のない時間帯に作業する
- Cloudflare を使っている場合、追加したレコードはプロキシ(オレンジ雲)ではなく「DNSのみ」(グレー雲)にする
Auto SSL 付きの Link Branding は、1つのドメインに1つだけ
- 過去のメールを救うため、
url5678を残したまま、url1234を Auto SSL 付きの2つ目として作ろうとした - 次のエラーで作れなかった
An auto SSL branded link already exists for this domain. Please use a different domain.
-
url1234.example.jpはexample.jpのリンクとしてしか作れないので、ドメインを変えて回避することもできない -
url5678を消してurl1234で作り直せば過去のメールは救えるが、今度はurl5678で送ったメール(再送したメール)のリンクが切れる - 結論:新しい名前で作り直した時点で、旧名で送ったメールのリンクは救えなくなる
分かったこと:SendGrid は、削除した後も旧リンクを読み取れる
- 削除済みの
url1234のリンクを、DNS を通さず SendGrid へ直接送ってみた。すると、元のリンク先へ正しく転送された(302) - 過去のメールが開けないのは、DNS を消したからだった
- だからこそ、最初の作り直しで同じサブドメインを指定していれば、過去のメールのリンクもそのまま開けたはず
# DNS を変えずに、旧リンクを SendGrid に直接送って転送先を確認する
# (SendGrid 側にクリックが1件記録されることがある)
ip=$(dig +short sendgrid.net | head -1)
curl -s -o /dev/null --resolve url1234.example.jp:80:$ip \
-w "%{http_code} -> %{redirect_url}\n" "http://url1234.example.jp/ls/click?upn=..."
まとめ
- Link Branding は必ず Auto SSL 付きにする(Gmail も非 HTTPS のリンクに警告を出す方向)
- 作り直すときは、同じサブドメインを指定する。自動採番に任せて旧設定を消すと、送信済みメールのリンクが全部切れる
- Auto SSL 付きの Link Branding は1ドメインに1つだけ。旧名を指定できるのは最初の作り直しのときだけ
- HSTS に
includeSubDomainsを付けているなら、http のリンクでも証明書が必要

