(簡単な)対策
production.rbなど適切な場所に、以下のoptionを追加する。
config.ssl_options = {hsts: {subdomains: false}}
説明
Rails 5.1.2から、Strict-Transport-Security header(通称:HSTS)のincludeSubdomainsのデフォルト値がtrueになったため、例えばあなたのサービスのドメインが、example.com
だったとして、SendGridのLink Whitelabelに通常通り、link.example.com
を使用していた場合、example.com(内のページ)にアクセスしたことがある人(ブラウザ)は、そのサブドメインにもSSL接続を試みるようになりますが、link.example.comが有効なSSL通信ができない場合、エラーが発生します。
(SendGridが送るメール内ではhttpでlink.example.comにアクセスしていますが、ブラウザがHSTSによりSSLに置き換えている形です。)
(やっかいなのは、example.comにアクセスしたことのない人は、基本的にHSTSの機構が働かないので、問題なくそのままアクセスできるので、この問題に気付きにくいです。)
なお、Strict-Transport-Security headerについては、MDNなどを参照してください。
よりよい対策
上では、すぐにできる簡単な対策を書きましたが、当然、より高いsecurityとprivacyのためにはサブドメインでも可能な限り、SSL通信を使うべきで、そちらに関しては、公式がドキュメントを公開しています。