certbot-dns-plugins.js 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479
  1. /**
  2. * This file contains info about available Certbot DNS plugins.
  3. * This only works for plugins which use the standard argument structure, so:
  4. * --authenticator <plugin-name> --<plugin-name>-credentials <FILE> --<plugin-name>-propagation-seconds <number>
  5. *
  6. * File Structure:
  7. *
  8. * {
  9. * cloudflare: {
  10. * display_name: "Name displayed to the user",
  11. * package_name: "Package name in PyPi repo",
  12. * version_requirement: "Optional package version requirements (e.g. ==1.3 or >=1.2,<2.0, see https://www.python.org/dev/peps/pep-0440/#version-specifiers)",
  13. * dependencies: "Additional dependencies, space separated (as you would pass it to pip install)",
  14. * credentials: `Template of the credentials file`,
  15. * full_plugin_name: "The full plugin name as used in the commandline with certbot, including prefixes, e.g. 'certbot-dns-njalla:dns-njalla'",
  16. * },
  17. * ...
  18. * }
  19. *
  20. */
  21. module.exports = {
  22. //####################################################//
  23. acmedns: {
  24. display_name: 'ACME-DNS',
  25. package_name: 'certbot-dns-acmedns',
  26. version_requirement: '~=0.1.0',
  27. dependencies: '',
  28. credentials: `certbot_dns_acmedns:dns_acmedns_api_url = http://acmedns-server/
  29. certbot_dns_acmedns:dns_acmedns_registration_file = /data/acme-registration.json`,
  30. full_plugin_name: 'certbot-dns-acmedns:dns-acmedns',
  31. },
  32. aliyun: {
  33. display_name: 'Aliyun',
  34. package_name: 'certbot-dns-aliyun',
  35. version_requirement: '~=0.38.1',
  36. dependencies: '',
  37. credentials: `certbot_dns_aliyun:dns_aliyun_access_key = 12345678
  38. certbot_dns_aliyun:dns_aliyun_access_key_secret = 1234567890abcdef1234567890abcdef`,
  39. full_plugin_name: 'certbot-dns-aliyun:dns-aliyun',
  40. },
  41. //####################################################//
  42. azure: {
  43. display_name: 'Azure',
  44. package_name: 'certbot-dns-azure',
  45. version_requirement: '~=1.2.0',
  46. dependencies: '',
  47. credentials: `# This plugin supported API authentication using either Service Principals or utilizing a Managed Identity assigned to the virtual machine.
  48. # Regardless which authentication method used, the identity will need the “DNS Zone Contributor” role assigned to it.
  49. # As multiple Azure DNS Zones in multiple resource groups can exist, the config file needs a mapping of zone to resource group ID. Multiple zones -> ID mappings can be listed by using the key dns_azure_zoneX where X is a unique number. At least 1 zone mapping is required.
  50. # Using a service principal (option 1)
  51. dns_azure_sp_client_id = 912ce44a-0156-4669-ae22-c16a17d34ca5
  52. dns_azure_sp_client_secret = E-xqXU83Y-jzTI6xe9fs2YC~mck3ZzUih9
  53. dns_azure_tenant_id = ed1090f3-ab18-4b12-816c-599af8a88cf7
  54. # Using used assigned MSI (option 2)
  55. # dns_azure_msi_client_id = 912ce44a-0156-4669-ae22-c16a17d34ca5
  56. # Using system assigned MSI (option 3)
  57. # dns_azure_msi_system_assigned = true
  58. # Zones (at least one always required)
  59. dns_azure_zone1 = example.com:/subscriptions/c135abce-d87d-48df-936c-15596c6968a5/resourceGroups/dns1
  60. dns_azure_zone2 = example.org:/subscriptions/99800903-fb14-4992-9aff-12eaf2744622/resourceGroups/dns2`,
  61. full_plugin_name: 'dns-azure',
  62. },
  63. //####################################################//
  64. cloudflare: {
  65. display_name: 'Cloudflare',
  66. package_name: 'certbot-dns-cloudflare',
  67. // version_requirement: '', // Official plugin, no version requirement
  68. dependencies: 'cloudflare',
  69. credentials: `# Cloudflare API token
  70. dns_cloudflare_api_token = 0123456789abcdef0123456789abcdef01234567`,
  71. full_plugin_name: 'dns-cloudflare',
  72. },
  73. //####################################################//
  74. cloudns: {
  75. display_name: 'ClouDNS',
  76. package_name: 'certbot-dns-cloudns',
  77. version_requirement: '~=0.4.0',
  78. dependencies: '',
  79. credentials: `# Target user ID (see https://www.cloudns.net/api-settings/)
  80. dns_cloudns_auth_id=1234
  81. # Alternatively, one of the following two options can be set:
  82. # dns_cloudns_sub_auth_id=1234
  83. # dns_cloudns_sub_auth_user=foobar
  84. # API password
  85. dns_cloudns_auth_password=password1`,
  86. full_plugin_name: 'dns-cloudns',
  87. },
  88. //####################################################//
  89. cloudxns: {
  90. display_name: 'CloudXNS',
  91. package_name: 'certbot-dns-cloudxns',
  92. // version_requirement: '', // Official plugin, no version requirement
  93. dependencies: '',
  94. credentials: `dns_cloudxns_api_key = 1234567890abcdef1234567890abcdef
  95. dns_cloudxns_secret_key = 1122334455667788`,
  96. full_plugin_name: 'dns-cloudxns',
  97. },
  98. //####################################################//
  99. corenetworks: {
  100. display_name: 'Core Networks',
  101. package_name: 'certbot-dns-corenetworks',
  102. version_requirement: '~=0.1.4',
  103. dependencies: '',
  104. credentials: `certbot_dns_corenetworks:dns_corenetworks_username = asaHB12r
  105. certbot_dns_corenetworks:dns_corenetworks_password = secure_password`,
  106. full_plugin_name: 'certbot-dns-corenetworks:dns-corenetworks',
  107. },
  108. //####################################################//
  109. cpanel: {
  110. display_name: 'cPanel',
  111. package_name: 'certbot-dns-cpanel',
  112. version_requirement: '~=0.2.2',
  113. dependencies: '',
  114. credentials: `certbot_dns_cpanel:cpanel_url = https://cpanel.example.com:2083
  115. certbot_dns_cpanel:cpanel_username = user
  116. certbot_dns_cpanel:cpanel_password = hunter2`,
  117. full_plugin_name: 'certbot-dns-cpanel:cpanel',
  118. },
  119. //####################################################//
  120. desec: {
  121. display_name: 'deSEC',
  122. package_name: 'certbot-dns-desec',
  123. version_requirement: '~=0.3.0',
  124. dependencies: '',
  125. credentials: `certbot_dns_desec:dns_desec_token = YOUR_DESEC_API_TOKEN
  126. certbot_dns_desec:dns_desec_endpoint = https://desec.io/api/v1/`,
  127. full_plugin_name: 'certbot-dns-desec:dns-desec',
  128. },
  129. //####################################################//
  130. duckdns: {
  131. display_name: 'DuckDNS',
  132. package_name: 'certbot-dns-duckdns',
  133. version_requirement: '~=0.6',
  134. dependencies: '',
  135. credentials: 'dns_duckdns_token=your-duckdns-token',
  136. full_plugin_name: 'dns-duckdns',
  137. },
  138. //####################################################//
  139. digitalocean: {
  140. display_name: 'DigitalOcean',
  141. package_name: 'certbot-dns-digitalocean',
  142. // version_requirement: '', // Official plugin, no version requirement
  143. dependencies: '',
  144. credentials: 'dns_digitalocean_token = 0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff',
  145. full_plugin_name: 'dns-digitalocean',
  146. },
  147. //####################################################//
  148. directadmin: {
  149. display_name: 'DirectAdmin',
  150. package_name: 'certbot-dns-directadmin',
  151. version_requirement: '~=0.0.23',
  152. dependencies: '',
  153. credentials: `directadmin_url = https://my.directadminserver.com:2222
  154. directadmin_username = username
  155. directadmin_password = aSuperStrongPassword`,
  156. full_plugin_name: 'directadmin',
  157. },
  158. //####################################################//
  159. dnsimple: {
  160. display_name: 'DNSimple',
  161. package_name: 'certbot-dns-dnsimple',
  162. // version_requirement: '', // Official plugin, no version requirement
  163. dependencies: '',
  164. credentials: 'dns_dnsimple_token = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw',
  165. full_plugin_name: 'dns-dnsimple',
  166. },
  167. //####################################################//
  168. dnsmadeeasy: {
  169. display_name: 'DNS Made Easy',
  170. package_name: 'certbot-dns-dnsmadeeasy',
  171. // version_requirement: '', // Official plugin, no version requirement
  172. dependencies: '',
  173. credentials: `dns_dnsmadeeasy_api_key = 1c1a3c91-4770-4ce7-96f4-54c0eb0e457a
  174. dns_dnsmadeeasy_secret_key = c9b5625f-9834-4ff8-baba-4ed5f32cae55`,
  175. full_plugin_name: 'dns-dnsmadeeasy',
  176. },
  177. //####################################################//
  178. dnspod: {
  179. display_name: 'DNSPod',
  180. package_name: 'certbot-dns-dnspod',
  181. version_requirement: '~=0.1.0',
  182. dependencies: '',
  183. credentials: `certbot_dns_dnspod:dns_dnspod_email = "DNSPOD-API-REQUIRES-A-VALID-EMAIL"
  184. certbot_dns_dnspod:dns_dnspod_api_token = "DNSPOD-API-TOKEN"`,
  185. full_plugin_name: 'certbot-dns-dnspod:dns-dnspod',
  186. },
  187. //####################################################//
  188. dynu: {
  189. display_name: 'Dynu',
  190. package_name: 'certbot-dns-dynu',
  191. version_requirement: '~=0.0.1',
  192. dependencies: '',
  193. credentials: 'certbot_dns_dynu:dns_dynu_auth_token = YOUR_DYNU_AUTH_TOKEN',
  194. full_plugin_name: 'certbot-dns-dynu:dns-dynu',
  195. },
  196. //####################################################//
  197. eurodns: {
  198. display_name: 'EuroDNS',
  199. package_name: 'certbot-dns-eurodns',
  200. version_requirement: '~=0.0.4',
  201. dependencies: '',
  202. credentials: `dns_eurodns_applicationId = myuser
  203. dns_eurodns_apiKey = mysecretpassword
  204. dns_eurodns_endpoint = https://rest-api.eurodns.com/user-api-gateway/proxy`,
  205. full_plugin_name: 'certbot-dns-eurodns:dns-eurodns',
  206. },
  207. //####################################################//
  208. gandi: {
  209. display_name: 'Gandi Live DNS',
  210. package_name: 'certbot_plugin_gandi',
  211. version_requirement: '~=1.2.5',
  212. dependencies: '',
  213. credentials: 'certbot_plugin_gandi:dns_api_key = APIKEY',
  214. full_plugin_name: 'certbot-plugin-gandi:dns',
  215. },
  216. //####################################################//
  217. godaddy: {
  218. display_name: 'GoDaddy',
  219. package_name: 'certbot-dns-godaddy',
  220. version_requirement: '~=0.2.0',
  221. dependencies: '',
  222. credentials: `dns_godaddy_secret = 0123456789abcdef0123456789abcdef01234567
  223. dns_godaddy_key = abcdef0123456789abcdef01234567abcdef0123`,
  224. full_plugin_name: 'dns-godaddy',
  225. },
  226. //####################################################//
  227. google: {
  228. display_name: 'Google',
  229. package_name: 'certbot-dns-google',
  230. // version_requirement: '', // Official plugin, no version requirement
  231. dependencies: '',
  232. credentials: `{
  233. "type": "service_account",
  234. ...
  235. }`,
  236. full_plugin_name: 'dns-google',
  237. },
  238. //####################################################//
  239. hetzner: {
  240. display_name: 'Hetzner',
  241. package_name: 'certbot-dns-hetzner',
  242. version_requirement: '~=1.0.4',
  243. dependencies: '',
  244. credentials: 'certbot_dns_hetzner:dns_hetzner_api_token = 0123456789abcdef0123456789abcdef',
  245. full_plugin_name: 'certbot-dns-hetzner:dns-hetzner',
  246. },
  247. //####################################################//
  248. infomaniak: {
  249. display_name: 'Infomaniak',
  250. package_name: 'certbot-dns-infomaniak',
  251. version_requirement: '~=0.1.12',
  252. dependencies: '',
  253. credentials: 'certbot_dns_infomaniak:dns_infomaniak_token = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
  254. full_plugin_name: 'certbot-dns-infomaniak:dns-infomaniak',
  255. },
  256. //####################################################//
  257. inwx: {
  258. display_name: 'INWX',
  259. package_name: 'certbot-dns-inwx',
  260. version_requirement: '~=2.1.2',
  261. dependencies: '',
  262. credentials: `certbot_dns_inwx:dns_inwx_url = https://api.domrobot.com/xmlrpc/
  263. certbot_dns_inwx:dns_inwx_username = your_username
  264. certbot_dns_inwx:dns_inwx_password = your_password
  265. certbot_dns_inwx:dns_inwx_shared_secret = your_shared_secret optional`,
  266. full_plugin_name: 'certbot-dns-inwx:dns-inwx',
  267. },
  268. //####################################################//
  269. ionos: {
  270. display_name: 'IONOS',
  271. package_name: 'certbot-dns-ionos',
  272. version_requirement: '~=0.0.7',
  273. dependencies: '',
  274. credentials: `certbot_dns_ionos:dns_ionos_prefix = myapikeyprefix
  275. certbot_dns_ionos:dns_ionos_secret = verysecureapikeysecret
  276. certbot_dns_ionos:dns_ionos_endpoint = https://api.hosting.ionos.com`,
  277. full_plugin_name: 'certbot-dns-ionos:dns-ionos',
  278. },
  279. //####################################################//
  280. ispconfig: {
  281. display_name: 'ISPConfig',
  282. package_name: 'certbot-dns-ispconfig',
  283. version_requirement: '~=0.2.0',
  284. dependencies: '',
  285. credentials: `certbot_dns_ispconfig:dns_ispconfig_username = myremoteuser
  286. certbot_dns_ispconfig:dns_ispconfig_password = verysecureremoteuserpassword
  287. certbot_dns_ispconfig:dns_ispconfig_endpoint = https://localhost:8080`,
  288. full_plugin_name: 'certbot-dns-ispconfig:dns-ispconfig',
  289. },
  290. //####################################################//
  291. isset: {
  292. display_name: 'Isset',
  293. package_name: 'certbot-dns-isset',
  294. version_requirement: '~=0.0.3',
  295. dependencies: '',
  296. credentials: `certbot_dns_isset:dns_isset_endpoint="https://customer.isset.net/api"
  297. certbot_dns_isset:dns_isset_token="<token>"`,
  298. full_plugin_name: 'certbot-dns-isset:dns-isset',
  299. },
  300. joker: {
  301. display_name: 'Joker',
  302. package_name: 'certbot-dns-joker',
  303. version_requirement: '~=1.1.0',
  304. dependencies: '',
  305. credentials: `certbot_dns_joker:dns_joker_username = <Dynamic DNS Authentication Username>
  306. certbot_dns_joker:dns_joker_password = <Dynamic DNS Authentication Password>
  307. certbot_dns_joker:dns_joker_domain = <Dynamic DNS Domain>`,
  308. full_plugin_name: 'certbot-dns-joker:dns-joker',
  309. },
  310. //####################################################//
  311. linode: {
  312. display_name: 'Linode',
  313. package_name: 'certbot-dns-linode',
  314. // version_requirement: '', // Official plugin, no version requirement
  315. dependencies: '',
  316. credentials: `dns_linode_key = 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ64
  317. dns_linode_version = [<blank>|3|4]`,
  318. full_plugin_name: 'dns-linode',
  319. },
  320. //####################################################//
  321. loopia: {
  322. display_name: 'Loopia',
  323. package_name: 'certbot-dns-loopia',
  324. version_requirement: '~=1.0.0',
  325. dependencies: '',
  326. credentials: `dns_loopia_user = user@loopiaapi
  327. dns_loopia_password = abcdef0123456789abcdef01234567abcdef0123`,
  328. full_plugin_name: 'dns-loopia',
  329. },
  330. //####################################################//
  331. luadns: {
  332. display_name: 'LuaDNS',
  333. package_name: 'certbot-dns-luadns',
  334. // version_requirement: '', // Official plugin, no version requirement
  335. dependencies: '',
  336. credentials: `dns_luadns_email = [email protected]
  337. dns_luadns_token = 0123456789abcdef0123456789abcdef`,
  338. full_plugin_name: 'dns-luadns',
  339. },
  340. //####################################################//
  341. netcup: {
  342. display_name: 'netcup',
  343. package_name: 'certbot-dns-netcup',
  344. version_requirement: '~=1.0.0',
  345. dependencies: '',
  346. credentials: `certbot_dns_netcup:dns_netcup_customer_id = 123456
  347. certbot_dns_netcup:dns_netcup_api_key = 0123456789abcdef0123456789abcdef01234567
  348. certbot_dns_netcup:dns_netcup_api_password = abcdef0123456789abcdef01234567abcdef0123`,
  349. full_plugin_name: 'certbot-dns-netcup:dns-netcup',
  350. },
  351. //####################################################//
  352. njalla: {
  353. display_name: 'Njalla',
  354. package_name: 'certbot-dns-njalla',
  355. version_requirement: '~=1.0.0',
  356. dependencies: '',
  357. credentials: 'certbot_dns_njalla:dns_njalla_token = 0123456789abcdef0123456789abcdef01234567',
  358. full_plugin_name: 'certbot-dns-njalla:dns-njalla',
  359. },
  360. //####################################################//
  361. nsone: {
  362. display_name: 'NS1',
  363. package_name: 'certbot-dns-nsone',
  364. // version_requirement: '', // Official plugin, no version requirement
  365. dependencies: '',
  366. credentials: 'dns_nsone_api_key = MDAwMDAwMDAwMDAwMDAw',
  367. full_plugin_name: 'dns-nsone',
  368. },
  369. //####################################################//
  370. oci: {
  371. display_name: 'Oracle Cloud Infrastructure DNS',
  372. package_name: 'certbot-dns-oci',
  373. package_version: '0.3.6',
  374. dependencies: 'oci',
  375. credentials: `[DEFAULT]
  376. user = ocid1.user.oc1...
  377. fingerprint = xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
  378. tenancy = ocid1.tenancy.oc1...
  379. region = us-ashburn-1
  380. key_file = ~/.oci/oci_api_key.pem`,
  381. full_plugin_name: 'dns-oci',
  382. },
  383. //####################################################//
  384. ovh: {
  385. display_name: 'OVH',
  386. package_name: 'certbot-dns-ovh',
  387. // version_requirement: '', // Official plugin, no version requirement
  388. dependencies: '',
  389. credentials: `dns_ovh_endpoint = ovh-eu
  390. dns_ovh_application_key = MDAwMDAwMDAwMDAw
  391. dns_ovh_application_secret = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
  392. dns_ovh_consumer_key = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw`,
  393. full_plugin_name: 'dns-ovh',
  394. },
  395. //####################################################//
  396. porkbun: {
  397. display_name: 'Porkbun',
  398. package_name: 'certbot-dns-porkbun',
  399. version_requirement: '~=0.2',
  400. dependencies: '',
  401. credentials: `dns_porkbun_key=your-porkbun-api-key
  402. dns_porkbun_secret=your-porkbun-api-secret`,
  403. full_plugin_name: 'dns-porkbun',
  404. },
  405. //####################################################//
  406. powerdns: {
  407. display_name: 'PowerDNS',
  408. package_name: 'certbot-dns-powerdns',
  409. version_requirement: '~=0.2.0',
  410. dependencies: '',
  411. credentials: `certbot_dns_powerdns:dns_powerdns_api_url = https://api.mypowerdns.example.org
  412. certbot_dns_powerdns:dns_powerdns_api_key = AbCbASsd!@34`,
  413. full_plugin_name: 'certbot-dns-powerdns:dns-powerdns',
  414. },
  415. //####################################################//
  416. regru: {
  417. display_name: 'reg.ru',
  418. package_name: 'certbot-regru',
  419. version_requirement: '~=1.0.2',
  420. dependencies: '',
  421. credentials: `certbot_regru:dns_username=username
  422. certbot_regru:dns_password=password`,
  423. full_plugin_name: 'certbot-regru:dns',
  424. },
  425. //####################################################//
  426. rfc2136: {
  427. display_name: 'RFC 2136',
  428. package_name: 'certbot-dns-rfc2136',
  429. // version_requirement: '', // Official plugin, no version requirement
  430. dependencies: '',
  431. credentials: `# Target DNS server
  432. dns_rfc2136_server = 192.0.2.1
  433. # Target DNS port
  434. dns_rfc2136_port = 53
  435. # TSIG key name
  436. dns_rfc2136_name = keyname.
  437. # TSIG key secret
  438. dns_rfc2136_secret = 4q4wM/2I180UXoMyN4INVhJNi8V9BCV+jMw2mXgZw/CSuxUT8C7NKKFs AmKd7ak51vWKgSl12ib86oQRPkpDjg==
  439. # TSIG key algorithm
  440. dns_rfc2136_algorithm = HMAC-SHA512`,
  441. full_plugin_name: 'dns-rfc2136',
  442. },
  443. //####################################################//
  444. route53: {
  445. display_name: 'Route 53 (Amazon)',
  446. package_name: 'certbot-dns-route53',
  447. // version_requirement: '', // Official plugin, no version requirement
  448. dependencies: '',
  449. credentials: `[default]
  450. aws_access_key_id=AKIAIOSFODNN7EXAMPLE
  451. aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`,
  452. full_plugin_name: 'dns-route53',
  453. },
  454. //####################################################//
  455. transip: {
  456. display_name: 'TransIP',
  457. package_name: 'certbot-dns-transip',
  458. version_requirement: '~=0.3.3',
  459. dependencies: '',
  460. credentials: `certbot_dns_transip:dns_transip_username = my_username
  461. certbot_dns_transip:dns_transip_key_file = /etc/letsencrypt/transip-rsa.key`,
  462. full_plugin_name: 'certbot-dns-transip:dns-transip',
  463. },
  464. //####################################################//
  465. vultr: {
  466. display_name: 'Vultr',
  467. package_name: 'certbot-dns-vultr',
  468. version_requirement: '~=1.0.3',
  469. dependencies: '',
  470. credentials: 'certbot_dns_vultr:dns_vultr_key = YOUR_VULTR_API_KEY',
  471. full_plugin_name: 'certbot-dns-vultr:dns-vultr',
  472. },
  473. };