Rogue certificates for 1.1.1.1: What happened and what it means for TLS trust

Cloudflare was recently notified, via our vulnerability disclosure program and the certificate transparency mailing list, that the Croatian Fina CA had issued twelve unauthorized certificates for 1.1.1.1, an IP address used by our public DNS resolver. The certificates were issued between February 2024 and August 2025. We have not observed unauthorized issuance for any other Cloudflare-managed property.

We have no evidence that these certificates were used maliciously. To actually impersonate the 1.1.1.1 service, an attacker would need the rogue certificate and its private key, would need targeted clients to trust Fina CA in their root store, and would need to intercept traffic between those clients and our resolver. All certificates have now been revoked, and we are awaiting a full post-mortem from Fina. While this lapse is ultimately Fina's responsibility, we should have detected it earlier, and we have identified internal failures that allowed it to go unnoticed for so long.

Why DoT and DoH depend on IP-address certificates

The DNS protocol as originally specified in RFC 1034 and RFC 1035 has no built-in privacy or authenticity protections; queries and responses are exchanged in plain text over UDP or TCP. Roughly 60% of the queries received by the Cloudflare 1.1.1.1 service still arrive this way. That leaves every query vulnerable to interception and modification by intermediaries.

To fix this, we helped develop DNS over TLS (DoT, RFC 7858) and DNS over HTTPS (DoH, RFC 8484). Both keep the DNS wire protocol largely untouched but replace the plain-text transport with TLS. During the TLS handshake, the server presents a certificate that proves its identity; the client validates that the certificate is signed by a Certification Authority (CA) in its root store before sending a single DNS query.

For DNS resolvers, those certificates differ from typical website certificates. When a browser connects to example.com, it first resolves the domain to an IP address, then connects to that address and validates a certificate containing the domain name. But a DNS client cannot resolve a domain name before it has a working resolver — it must connect directly to a known IP like 1.1.1.1. The certificate presented by the resolver must therefore contain the service's IP addresses, not just its hostnames. The Cloudflare public resolver serves certificates that include these addresses:

Certificate:
  Data:
      Version: 3 (0x2)
      Serial Number:
          02:7d:c8:c5:e1:72:94:ae:c9:ed:3f:67:72:8e:8a:08
      Signature Algorithm: sha256WithRSAEncryption
      Issuer: C=US, O=DigiCert Inc, CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
      Validity
          Not Before: Jan  2 00:00:00 2025 GMT
          Not After : Jan 21 23:59:59 2026 GMT
      Subject: C=US, ST=California, L=San Francisco, O=Cloudflare, Inc., CN=cloudflare-dns.com
      X509v3 extensions:
          X509v3 Subject Alternative Name:
              DNS:cloudflare-dns.com, DNS:*.cloudflare-dns.com, DNS:one.one.one.one, IP Address:1.0.0.1, IP Address:1.1.1.1, IP Address:162.159.36.1, IP Address:162.159.46.1, IP Address:2606:4700:4700:0:0:0:0:1001, IP Address:2606:4700:4700:0:0:0:0:1111, IP Address:2606:4700:4700:0:0:0:0:64, IP Address:2606:4700:4700:0:0:0:0:6400

How a certificate for 1.1.1.1 was issued without our permission

The services we describe above use certificates managed by Cloudflare. The Fina CA certificates are different: they were issued without our involvement, meaning Fina failed to verify that the requester controlled the IP address in question. Fina has stated:

"They were issued for the purpose of internal testing of certificate issuance in the production environment. An error occurred during the issuance of the test certificates when entering the IP addresses and as such they were published on Certificate Transparency log servers."

Publishing test certificates to Certificate Transparency is not itself an error — that is how rogue issuance is meant to be caught. The error is signing a certificate for an IP address without the controller's permission, using production keys. Fina should have used an IP address it controls itself rather than the Cloudflare public resolver's address, which has often been misused in documentation and lab environments.

Unauthorized issuance is not rare. It can stem from negligence, as with IdenTrust in November 2024, or compromise — the 2011 hack of Dutch CA DigiNotar, whose keys were used to issue hundreds of rogue certificates, was a wake-up call that led to the introduction of Certificate Transparency, formalized in RFC 6962. CT does not prevent misissuance; it makes it publicly detectable. CAs are required to submit certificates to public logs, and many browsers require SCTs proving inclusion in at least two independent logs. Domain owners can monitor those logs for certificates covering their names, and services like crt.sh and Cloudflare Radar's certificate transparency page make the data searchable.

Most DNS clients, unlike browsers, do not require proof of CT inclusion. Had Fina not submitted the certificates to public CT logs, this incident might not have been discovered at all.

Assessing the real-world attack surface

Three independent conditions would need to hold for these certificates to be exploited. We reviewed each:

  1. Private key availability. The certificates were issued without our involvement, so we must assume a corresponding private key exists outside our control. Fina told us the keys remained in its controlled environment and were destroyed before revocation. We have no way to verify this, and we continue to monitor for signs of use.
  2. Client trust in Fina CA. Fina CA is included in Microsoft's root store and in an EU Trust Service provider's program. It is not in the default root stores of Android, Apple, Mozilla, or Chrome, which limits the affected population. We contacted Fina, Microsoft, and the EU Trust Service provider immediately. Microsoft has started rolling out an update to its disallowed list that causes clients using it to stop trusting the Fina certificate.
  3. Traffic interception. We launched an investigation into possible interception. A man-in-the-middle attack by an on-path device is likely to be invisible to us — clients receive responses from the interfering middlebox and we have no reliable way to detect it. Such interference has been a persistent problem for 1.1.1.1, which we have been addressing for years. Off-path attacks via BGP hijacking are also possible but harder to pull off at scale thanks to increasing RPKI route origin validation (ROV) adoption. We reviewed historical BGP announcements involving 1.1.1.1 and found no evidence of hijacks.

So far, we have seen no evidence that any of these certificates were used to impersonate our service — but we cannot be certain, and we outline below the steps we are taking to prevent future misuse.

What the unauthorized certificates looked like

The Fina certificates were all valid for exactly one year and included domain names alongside the IP address. Most of those domains are unregistered — a sign that no proper domain control validation was performed. That violates sections 3.2.2.4 and 3.2.2.5 of the CA/Browser Forum's Baseline Requirements, as well as sections 3.2.2.3 and 3.2.2.4 of the Fina CA Certificate Policy.

The domain names we identified on the unauthorized certificates:

fina.hr
ssltest5
test.fina.hr
test.hr
test1.hr
test11.hr
test12.hr
test5.hr
test6
test6.hr
testssl.fina.hr
testssl.finatest.hr
testssl.hr
testssl1.finatest.hr
testssl2.finatest.hr

The certificates' Subject attribute pointed to a fictional organization, TEST D.D., as shown here:

        Serial Number:
            a5:30:a2:9c:c1:a5:da:40:00:00:00:00:56:71:f2:4c
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=HR, O=Financijska agencija, CN=Fina RDC 2015
        Validity
            Not Before: Nov  2 23:45:15 2024 GMT
            Not After : Nov  2 23:45:15 2025 GMT
        Subject: C=HR, O=TEST D.D., L=ZAGREB, CN=testssl.finatest.hr, serialNumber=VATHR-32343828408.306
        X509v3 extensions:
            X509v3 Subject Alternative Name:
                DNS:testssl.finatest.hr, DNS:testssl2.finatest.hr, IP Address:1.1.1.1

Timeline of the incident

All timestamps are UTC. Certificates are identified by their date of validity.

The first certificate was valid starting February 2024 and revoked just 33 minutes later. A total of 11 further certificates with common name 1.1.1.1 followed through August 2025. Public reports appeared on Hacker News and the certificate-transparency mailing list in early September 2025, which triggered our response.

Date & Time (UTC)

Event Description

2024-02-18 11:07:33

First certificate issuance revoked on 2024-02-18 11:40:00

2024-09-25 08:04:03

Issuance revoked on 2024-11-06 07:36:05

2024-10-04 07:55:38

Issuance revoked on 2024-10-04 07:56:56

2024-10-04 08:05:48

Issuance revoked on 2024-11-06 07:39:55

2024-10-15 06:28:48

Issuance revoked on 2024-11-06 07:35:36

2024-11-02 23:45:15

Issuance revoked on 2024-11-02 23:48:42

2025-03-05 09:12:23

Issuance revoked on 2025-03-05 09:13:22

2025-05-24 22:56:21

Issuance revoked on 2025-09-04 06:13:27

2025-06-28 23:05:32

Issuance revoked on 2025-07-18 07:01:27

2025-07-18 07:05:23

Issuance revoked on 2025-07-18 07:09:45

2025-07-18 07:13:14

Issuance revoked on 2025-09-04 06:30:36

2025-08-26 07:49:00

Last certificate issuance revoked on 2025-09-04 06:33:20

2025-09-01 05:23:00

HackerNews submission about a possible unauthorized issuance

2025-09-02 04:50:00

Report shared with us on HackerOne, but was mistriaged

2025-09-03 02:35:00

Second report shared with us on HackerOne, but also mistriaged.

2025-09-03 10:59:00

Report sent on the public [email protected] mailing picked up by the team.

2025-09-03 11:33:00

First response by Cloudflare on the mailing list about starting the investigation

2025-09-03 12:08:00

Incident declared

2025-09-03 12:16:00

Notification of an unauthorised issuance sent to Fina CA, Microsoft Root Store, and EU Trust service provider

2025-09-03 12:23:00

Cloudflare identifies an initial list of nine rogue certificates

2025-09-03 12:24:00

Outreach to Fina CA to inform them about the unauthorized issuance, requesting revocation

2025-09-03 12:26:00

Identify the number of requests served on 1.1.1.1 IP address, and associated names/services

2025-09-03 12:42:00

As a precautionary measure, began investigation to rule out the possibility of a BGP hijack for 1.1.1.1

2025-09-03 18:48:00

Second notification of the incident to Fina CA

2025-09-03 21:27:00

Microsoft Root Store notifies us that they are preventing further use of the identified unauthorized certificates by using their quick-revocation mechanism.

2025-09-04 06:13:27

Fina revoked all certificates.

2025-09-04 12:44:00

Cloudflare receives a response from Fina indicating “an error occurred during the issuance of the test certificates when entering the IP addresses and as such they were published on Certificate Transparency log servers. [...] Fina will eliminate the possibility of such an error recurring.”

Where Cloudflare failed, and what we are fixing

Cloudflare has long invested in CT. We operate public CT logs and run a CT monitor that alerts customers when certificates are mis-issued for their domains. It is disappointing that this monitoring failed to catch issuances for one of our own properties. We failed three times:

  • Our alerting system did not flag IP-address certificates at all.
  • Even when certificate issuance alerts would have fired, insufficient filtering meant important notices got lost in a high volume of mail.
  • Because of the noisy monitoring, we had not enabled alerting across all the domains we own.

We rechecked all certificates for our names — including but not limited to 1.1.1.1 — using CT and confirmed that, as of 3 September, the Fina certificates are the only unauthorized issuances. We have contacted Fina and the root programs that trust it. The certificates are revoked.

We are acting on these lessons:

  • Alerting: We will improve alerts and escalation for unauthorized issuance for Cloudflare-owned domains and for 1.1.1.1 certificates specifically.
  • Transparency: The fact that most DNS clients do not enforce CT inclusion made this detection a lucky one. We are working to promote transparency for non-browser clients, particularly DNS clients using TLS.
  • Bug Bounty: Triage delays in our vulnerability disclosure program slowed our response. We are revising that process to ensure reports get proper visibility.
  • Monitoring: During this incident, our team relied on crt.sh as a convenient UI. We thank the Sectigo team for maintaining it. We are building a dedicated certificate transparency explorer in Radar and plan to support certs with IP addresses as common names there as well.

This incident underscores how fragile the root store model can be: a single poorly-behaving CA puts everyone who trusts it at risk.

If you manage a fleet of devices, check whether your clients are affected. The certificates are already revoked, but system-wide revocation is neither instantaneous nor automatic, so direct intervention may still be needed — the list is in the timeline section above.

If you oversee a root store program that includes Fina CA, review their inclusion. This incident raises serious concerns and warrants a clear report and follow-up. Consider requiring CT participation for all CAs in your root store; without CT, misissuance like this can go undetected until real user impact occurs.

We are not suggesting you abandon DoH or DoT. Plain DNS over UDP and TCP leaves every query at risk of tampering and surveillance. But client security would materially improve if DoH and DoT clients required server certificates to be included in CT logs — a standard that browsers already effectively enforce.

While this is the first rogue issuance we have observed against our public DNS resolver, it may not be the last. Our goal is to discover and alert on these events faster, and we intend to do so.