Take advantage of the CAA DNS record to authorize CA to issue the TLS certificates.
What is DNS CAA?
CAA is one of the DNS record types which instruct CA if they should issue a certificate or not. In another word, you are letting the world know who should issue your domain SSL/TLS certificate. CAA implementation made mandatory late 2017, so it’s relatively new, and less than 5% of popular sites have implemented this.
Let’s take an example – Geekflare owns a site called “gf.dev,” which has the following CAA record.
gf.dev. 3586 IN CAA 0 issue "digicert.com; cansignhttpexchanges=yes" gf.dev. 3586 IN CAA 0 issuewild "comodoca.com" gf.dev. 3586 IN CAA 0 issue "comodoca.com" gf.dev. 3586 IN CAA 0 issuewild "digicert.com; cansignhttpexchanges=yes" gf.dev. 3586 IN CAA 0 issuewild "letsencrypt.org" gf.dev. 3586 IN CAA 0 issue "letsencrypt.org"
By looking at the above results, I can get the certificate issued only from DigiCert, Comodo, and Let’s encrypt. If I ask Thawte or other CA to issue a cert for gf.dev, then they won’t be able to. Also, if you pay attention, you will notice some entry has issue and some issuewild. Let’s find out what they are.
- issue – instruct CA to issue the cert only for that domain.
- issuewild – CA can issue the wildcard certificate so that it can be used in a domain or sub-domain.
CAA record also supports iodef (Incident object description exchange format) which allow CA to send violation report to the specified email or contact details.
What happens when no CAA record found?
If a domain doesn’t have a CAA record, then anyone can generate a CSR for that domain and get the cert signed by any CA. This is a security risk.
Is it clear now?
There are a few abbreviations I’ve used above. Let’s check out what they are.
- DNS – Domain name system
- CA – Certificate authority
- CAA – Certification authority authorization
- TLS – Transport layer security
- SSL – Secure socket layer
How to check the DNS CAA record?
There are multiple ways to validate the CAA record. If you don’t want to leave your terminal, then you can check using
dig caa $YOURWEBSITE.COM
Example of geekflare.com
[email protected]:~# dig caa geekflare.com ; <<>> DiG 9.11.3-1ubuntu1.8-Ubuntu <<>> caa geekflare.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54430 ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;geekflare.com. IN CAA ;; ANSWER SECTION: geekflare.com. 3600 IN CAA 0 issuewild "comodoca.com" geekflare.com. 3600 IN CAA 0 issuewild "letsencrypt.org" geekflare.com. 3600 IN CAA 0 issue "comodoca.com" geekflare.com. 3600 IN CAA 0 issue "digicert.com; cansignhttpexchanges=yes" geekflare.com. 3600 IN CAA 0 issue "letsencrypt.org" geekflare.com. 3600 IN CAA 0 issuewild "digicert.com; cansignhttpexchanges=yes" ;; Query time: 7 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: Tue Oct 08 07:12:21 UTC 2019 ;; MSG SIZE rcvd: 298 [email protected]:~#
If you like to test this remotely, then you can use DNS CAA Tester online tool.
How to add a CAA record?
Technically, this is the same way as you add other DNS records like A, NS, CNAME, etc.
If you are using Cloudflare, go to DNS tab >> add a record and select CAA as type.
For GoDaddy, go to DNS Management and add a record
If you are not sure how to add then, you may contact your DNS/hosting provider for help.
If not already, you should take advantage of the CAA record to add a layer of domain security. Adding a CAA record doesn’t cost you.
More great readings on Security
Protect Your Web Applications and APIs with G-Core Labs WAFAmrita Pathak on June 10, 2022
Create an Incident Report in Minutes With These TemplatesSatish Shethi on June 6, 2022
Software Composition Analysis (SCA): Everything You Need to Know in 2022Amrita Pathak on May 26, 2022
Best On-premise Password Manager for Your Business – PassworkHitesh Sant on June 1, 2022
How to Scan and Fix Log4j Vulnerability?Amrita Pathak on May 10, 2022
How to Protect Your WordPress Site with iThemes Security ProHitesh Sant on May 7, 2022
Join Geekflare Newsletter
Every week we share trending articles and tools in our newsletter. More than 10,000 people enjoy reading, and you will love it too.