NET::ERR_CERT_COMMON_NAME_INVALID 使用 SendGrid 重置电子邮件时出错

NET::ERR_CERT_COMMON_NAME_INVALID error on email reset using SendGrid

我有一个托管在 GCP App Engine 上的 Django 站点,使用 SendGrid 作为电子邮件主机。重置密码点击下面邮件中的link时,抛出后续错误:

Your connection is not private
NET::ERR_CERT_COMMON_NAME_INVALID

我调查了几个潜在的原因(link最后编辑),但未能找到解决方案。

password_reset_email.html(只显示reset_link块)

{% block reset_link %}
{{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}
{% endblock %}

settings.py

ALLOWED_HOSTS = ['*']
# Also tried with
#ALLOWED_HOSTS = ['*', 'website.com', 'www.website.com']

# HTTPS settings
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_SSL_REDIRECT = True

# HSTS settings
SECURE_HSTS_SECONDS = 31536000 # 1 year
SECURE_HSTS_PRELOAD = True
SECURE_HSTS_INCLUDE_SUBDOMAINS = True

# Email backend settings (SendGrid)
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
DEFAULT_FROM_EMAIL = 'some@email.com'
EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = 'apikey'
EMAIL_HOST_PASSWORD = 'EMAIL_HOST_PASSWORD'
EMAIL_PORT = 587
EMAIL_USE_TLS = True

我有 authenticated the domain and branded the link on SendGrid 已通过 Namecheap 上的 DNS 记录验证。

当我在浏览器中查看证书时,它仍然指的是 *.sendgrid.net。也许这可能是造成它的原因?我认为身份验证和 link 品牌可以解决这个问题。我还尝试清空缓存并在私有 window.

中打开 link

我也调查了 this, this and this SO 问题。

如有任何帮助,我们将不胜感激。

编辑

原来这也与this SO问题有关。

此处为 Twilio SendGrid 开发人员布道师。

您需要打开 SSL Click Tracking,这样您的 CDN 才能使用您域的有效证书将 SSL 内容转发到 SendGrid。