- Chrome
- Exact text checked with the real tool
NET::ERR_CERT_COMMON_NAME_INVALID
Also seen in: Edge, Brave, Opera, Electron apps, Android WebView
In one sentence
The certificate is trusted but not issued for this address: the name is missing from its SAN list, the server sent another site's certificate, or it has no SAN.
Where you see it
As a full-page warning in Chrome, Edge and other Chromium browsers. The code is ERR_CERT_COMMON_NAME_INVALID (−200) in Chromium’s network error list. Despite the name, it is about every name check, not just the Common Name field.
Your connection is not private
Attackers might be trying to steal your information from shop.example.com (for example, passwords, messages, or credit cards). Learn more about this warning
NET::ERR_CERT_COMMON_NAME_INVALID
Under Advanced, Chrome names the certificate it received:
This server could not prove that it is shop.example.com; its security certificate is from *.hosting.example.net. This may be caused by a misconfiguration or an attacker intercepting your connection.
What it means
A certificate lists the names it is valid for in its Subject Alternative Name (SAN) extension. Chrome trusted the certificate’s issuer, but the name in the address bar is not on that list. A genuine certificate for another site proves nothing about this one, so Chrome stops. Chrome ignores the Common Name and requires the hostname in the Subject Alternative Name since Chrome 58 (April 2017).
Likely causes
The name is not in the certificate
Common cases: the certificate covers www.example.com but not example.com (or the other way round), a new subdomain was added without a new certificate, or users reach an internal site by a short name such as intranet. List the names in the certificate:
openssl s_client -connect shop.example.com:443 -servername shop.example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -ext subjectAltName
subject=CN=www.example.com
X509v3 Subject Alternative Name:
DNS:www.example.com
Fix: reissue the certificate with every name users type. With certbot, list each name: certbot --nginx -d example.com -d www.example.com. For a private CA, add all names to subjectAltName in the request. Or redirect users to a name the certificate covers.
A wildcard does not match
*.example.com covers exactly one label: shop.example.com, but not example.com and not eu.shop.example.com. Add those names as separate SAN entries.
The server sends another site’s certificate
On shared hosting, CDNs and servers with many sites, the server picks the certificate by the name the browser sends in SNI. If your domain is not configured there, you get the default certificate, as in the example above (*.hosting.example.net). Compare:
openssl s_client -connect shop.example.com:443 -servername shop.example.com </dev/null 2>/dev/null | openssl x509 -noout -ext subjectAltName
Fix: add the domain and its certificate to the hosting or CDN configuration; in nginx, a server block with server_name shop.example.com; and its own ssl_certificate; on IIS, a binding with the host name and “Require Server Name Indication”. Also check DNS: the name may still point to an old server.
The certificate has no SAN, only a Common Name
Older internal certificates and quick self-made ones often put the name only in the Common Name. Chrome rejects these with this error even when the Common Name matches exactly. Some libraries still accept them, which is why curl may work while Chrome fails. Reissue the certificate with a SAN list:
openssl req -new -key server.key -subj "/CN=intranet.example.com" \
-addext "subjectAltName=DNS:intranet.example.com" -out server.csr
You browse to an IP address
https://10.0.0.5/ matches only an IP entry in the SAN list. Use the DNS name, or include the address as an IP: entry when your private CA issues the certificate.
Check yours
Paste the site’s certificate and type the address you use. The matcher lists the SAN entries, shows which one matches, and flags certificates that only have a Common Name.
Learn why
- Names and jobs: SANs, wildcards, key usage and the CA flag
- The TLS 1.3 handshake: SNI and how a server chooses its certificate.
- Chrome Status: removal of Common Name matching.
- Firefox’s version of this error: SSL_ERROR_BAD_CERT_DOMAIN.
Early edition. Checked against the standards; an independent expert review is in progress. Found a mistake? Tell us.