diff --git a/bin/v-add-dns-record b/bin/v-add-dns-record
index 2b4c52ca..bbf8edd8 100755
--- a/bin/v-add-dns-record
+++ b/bin/v-add-dns-record
@@ -45,10 +45,12 @@ if [[ $rtype =~ NS|CNAME|MX|PTR|SRV ]]; then
fi
fi
-dvalue=${dvalue//\"/}
+if [ $rtype != "CAA" ]; then
+ dvalue=${dvalue//\"/}
-if [[ "$dvalue" =~ [\;[:space:]] ]]; then
- dvalue='"'"$dvalue"'"'
+ if [[ "$dvalue" =~ [\;[:space:]] ]]; then
+ dvalue='"'"$dvalue"'"'
+ fi
fi
# Additional argument formatting
diff --git a/func/main.sh b/func/main.sh
index ca4ac3c5..94505606 100644
--- a/func/main.sh
+++ b/func/main.sh
@@ -659,7 +659,7 @@ is_dbuser_format_valid() {
# DNS record type validator
is_dns_type_format_valid() {
- known_dnstype='A,AAAA,NS,CNAME,MX,TXT,SRV,DNSKEY,KEY,IPSECKEY,PTR,SPF,TLSA'
+ known_dnstype='A,AAAA,NS,CNAME,MX,TXT,SRV,DNSKEY,KEY,IPSECKEY,PTR,SPF,TLSA,CAA'
if [ -z "$(echo $known_dnstype |grep -w $1)" ]; then
check_result $E_INVALID "invalid dns record type format :: $1"
fi
diff --git a/web/templates/admin/add_dns_rec.html b/web/templates/admin/add_dns_rec.html
index 2c8bebd7..33b4a9be 100644
--- a/web/templates/admin/add_dns_rec.html
+++ b/web/templates/admin/add_dns_rec.html
@@ -82,6 +82,7 @@
+