dns/dnssec_generate.py
2018-12-24 11:59:31 +01:00

34 lines
872 B
Python
Executable file

#!/usr/bin/python3
import json
import os
import re
import subprocess
path = os.path.dirname(os.path.abspath(__file__))
try:
with open(path + '/dnssec_domains.json') as dnssec_zones:
zones = json.load(dnssec_zones)
except:
zones = []
if __name__ == '__main__':
ds_records = {}
for zone in zones:
cds = subprocess.check_output(['knotc', 'zone-read', zone, '@', 'CDS'])[:-1].decode('utf-8')
ds = {}
try:
cds = cds.split(' ')
ds['subzone'] = cds[1]
ds['id'] = cds[4]
ds['algo'] = cds[5]
ds['type'] = cds[6]
ds['fp'] = cds[7]
except:
print('Unable to find ksk for', zone)
continue
ds['ttl'] = 172800
ds_records[zone] = ds
with open('dnssec.json', 'w') as dnssec:
json.dump(ds_records, dnssec)