certbot-dns-plugins.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416
  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. * package_version: "Package version in PyPi repo",
  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. package_version: '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. package_version: '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. // This can be reactivated once the plugin supports --dns-azure-credentials (https://github.com/binkhq/certbot-dns-azure/issues/7)
  43. // azure: {
  44. // display_name: 'Azure',
  45. // package_name: 'certbot-dns-azure',
  46. // package_version: '1.1.0',
  47. // dependencies: '',
  48. // credentials: `# This plugin supported API authentication using either Service Principals or utilizing a Managed Identity assigned to the virtual machine.
  49. // # Regardless which authentication method used, the identity will need the “DNS Zone Contributor” role assigned to it.
  50. // # 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.
  51. // # Using a service principal (option 1)
  52. // dns_azure_sp_client_id = 912ce44a-0156-4669-ae22-c16a17d34ca5
  53. // dns_azure_sp_client_secret = E-xqXU83Y-jzTI6xe9fs2YC~mck3ZzUih9
  54. // dns_azure_tenant_id = ed1090f3-ab18-4b12-816c-599af8a88cf7
  55. // # Using used assigned MSI (option 2)
  56. // # dns_azure_msi_client_id = 912ce44a-0156-4669-ae22-c16a17d34ca5
  57. // # Using system assigned MSI (option 3)
  58. // # dns_azure_msi_system_assigned = true
  59. // # Zones (at least one always required)
  60. // dns_azure_zone1 = example.com:/subscriptions/c135abce-d87d-48df-936c-15596c6968a5/resourceGroups/dns1
  61. // dns_azure_zone2 = example.org:/subscriptions/99800903-fb14-4992-9aff-12eaf2744622/resourceGroups/dns2`,
  62. // full_plugin_name: 'dns-azure',
  63. // },
  64. //####################################################//
  65. cloudflare: {
  66. display_name: 'Cloudflare',
  67. package_name: 'certbot-dns-cloudflare',
  68. package_version: '1.8.0',
  69. dependencies: 'cloudflare',
  70. credentials: `# Cloudflare API token
  71. dns_cloudflare_api_token = 0123456789abcdef0123456789abcdef01234567`,
  72. full_plugin_name: 'dns-cloudflare',
  73. },
  74. //####################################################//
  75. cloudns: {
  76. display_name: 'ClouDNS',
  77. package_name: 'certbot-dns-cloudns',
  78. package_version: '0.4.0',
  79. dependencies: '',
  80. credentials: `# Target user ID (see https://www.cloudns.net/api-settings/)
  81. dns_cloudns_auth_id=1234
  82. # Alternatively, one of the following two options can be set:
  83. # dns_cloudns_sub_auth_id=1234
  84. # dns_cloudns_sub_auth_user=foobar
  85. # API password
  86. dns_cloudns_auth_password=password1`,
  87. full_plugin_name: 'dns-cloudns',
  88. },
  89. //####################################################//
  90. cloudxns: {
  91. display_name: 'CloudXNS',
  92. package_name: 'certbot-dns-cloudxns',
  93. package_version: '1.8.0',
  94. dependencies: '',
  95. credentials: `dns_cloudxns_api_key = 1234567890abcdef1234567890abcdef
  96. dns_cloudxns_secret_key = 1122334455667788`,
  97. full_plugin_name: 'dns-cloudxns',
  98. },
  99. //####################################################//
  100. corenetworks: {
  101. display_name: 'Core Networks',
  102. package_name: 'certbot-dns-corenetworks',
  103. package_version: '0.1.4',
  104. dependencies: '',
  105. credentials: `certbot_dns_corenetworks:dns_corenetworks_username = asaHB12r
  106. certbot_dns_corenetworks:dns_corenetworks_password = secure_password`,
  107. full_plugin_name: 'certbot-dns-corenetworks:dns-corenetworks',
  108. },
  109. //####################################################//
  110. cpanel: {
  111. display_name: 'cPanel',
  112. package_name: 'certbot-dns-cpanel',
  113. package_version: '0.2.2',
  114. dependencies: '',
  115. credentials: `certbot_dns_cpanel:cpanel_url = https://cpanel.example.com:2083
  116. certbot_dns_cpanel:cpanel_username = user
  117. certbot_dns_cpanel:cpanel_password = hunter2`,
  118. full_plugin_name: 'certbot-dns-cpanel:cpanel',
  119. },
  120. //####################################################//
  121. duckdns: {
  122. display_name: 'DuckDNS',
  123. package_name: 'certbot-dns-duckdns',
  124. package_version: '0.5',
  125. dependencies: '',
  126. credentials: 'dns_duckdns_token=<your-duckdns-token>',
  127. full_plugin_name: 'dns-duckdns',
  128. },
  129. //####################################################//
  130. digitalocean: {
  131. display_name: 'DigitalOcean',
  132. package_name: 'certbot-dns-digitalocean',
  133. package_version: '1.8.0',
  134. dependencies: '',
  135. credentials: 'dns_digitalocean_token = 0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff',
  136. full_plugin_name: 'dns-digitalocean',
  137. },
  138. //####################################################//
  139. directadmin: {
  140. display_name: 'DirectAdmin',
  141. package_name: 'certbot-dns-directadmin',
  142. package_version: '0.0.20',
  143. dependencies: '',
  144. credentials: `directadmin_url = https://my.directadminserver.com:2222
  145. directadmin_username = username
  146. directadmin_password = aSuperStrongPassword`,
  147. full_plugin_name: 'certbot-dns-directadmin:directadmin',
  148. },
  149. //####################################################//
  150. dnsimple: {
  151. display_name: 'DNSimple',
  152. package_name: 'certbot-dns-dnsimple',
  153. package_version: '1.8.0',
  154. dependencies: '',
  155. credentials: 'dns_dnsimple_token = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw',
  156. full_plugin_name: 'dns-dnsimple',
  157. },
  158. //####################################################//
  159. dnsmadeeasy: {
  160. display_name: 'DNS Made Easy',
  161. package_name: 'certbot-dns-dnsmadeeasy',
  162. package_version: '1.8.0',
  163. dependencies: '',
  164. credentials: `dns_dnsmadeeasy_api_key = 1c1a3c91-4770-4ce7-96f4-54c0eb0e457a
  165. dns_dnsmadeeasy_secret_key = c9b5625f-9834-4ff8-baba-4ed5f32cae55`,
  166. full_plugin_name: 'dns-dnsmadeeasy',
  167. },
  168. //####################################################//
  169. dnspod: {
  170. display_name: 'DNSPod',
  171. package_name: 'certbot-dns-dnspod',
  172. package_version: '0.1.0',
  173. dependencies: '',
  174. credentials: `certbot_dns_dnspod:dns_dnspod_email = "DNSPOD-API-REQUIRES-A-VALID-EMAIL"
  175. certbot_dns_dnspod:dns_dnspod_api_token = "DNSPOD-API-TOKEN"`,
  176. full_plugin_name: 'certbot-dns-dnspod:dns-dnspod',
  177. },
  178. //####################################################//
  179. eurodns: {
  180. display_name: 'EuroDNS',
  181. package_name: 'certbot-dns-eurodns',
  182. package_version: '0.0.4',
  183. dependencies: '',
  184. credentials: `dns_eurodns_applicationId = myuser
  185. dns_eurodns_apiKey = mysecretpassword
  186. dns_eurodns_endpoint = https://rest-api.eurodns.com/user-api-gateway/proxy`,
  187. full_plugin_name: 'certbot-dns-eurodns:dns-eurodns',
  188. },
  189. //####################################################//
  190. gandi: {
  191. display_name: 'Gandi Live DNS',
  192. package_name: 'certbot_plugin_gandi',
  193. package_version: '1.2.5',
  194. dependencies: '',
  195. credentials: 'certbot_plugin_gandi:dns_api_key = APIKEY',
  196. full_plugin_name: 'certbot-plugin-gandi:dns',
  197. },
  198. //####################################################//
  199. godaddy: {
  200. display_name: 'GoDaddy',
  201. package_name: 'certbot-dns-godaddy',
  202. package_version: '0.2.0',
  203. dependencies: '',
  204. credentials: `dns_godaddy_secret = 0123456789abcdef0123456789abcdef01234567
  205. dns_godaddy_key = abcdef0123456789abcdef01234567abcdef0123`,
  206. full_plugin_name: 'dns-godaddy',
  207. },
  208. //####################################################//
  209. google: {
  210. display_name: 'Google',
  211. package_name: 'certbot-dns-google',
  212. package_version: '1.8.0',
  213. dependencies: '',
  214. credentials: `{
  215. "type": "service_account",
  216. ...
  217. }`,
  218. full_plugin_name: 'dns-google',
  219. },
  220. //####################################################//
  221. hetzner: {
  222. display_name: 'Hetzner',
  223. package_name: 'certbot-dns-hetzner',
  224. package_version: '1.0.4',
  225. dependencies: '',
  226. credentials: 'certbot_dns_hetzner:dns_hetzner_api_token = 0123456789abcdef0123456789abcdef',
  227. full_plugin_name: 'certbot-dns-hetzner:dns-hetzner',
  228. },
  229. //####################################################//
  230. inwx: {
  231. display_name: 'INWX',
  232. package_name: 'certbot-dns-inwx',
  233. package_version: '2.1.2',
  234. dependencies: '',
  235. credentials: `certbot_dns_inwx:dns_inwx_url = https://api.domrobot.com/xmlrpc/
  236. certbot_dns_inwx:dns_inwx_username = your_username
  237. certbot_dns_inwx:dns_inwx_password = your_password
  238. certbot_dns_inwx:dns_inwx_shared_secret = your_shared_secret optional`,
  239. full_plugin_name: 'certbot-dns-inwx:dns-inwx',
  240. },
  241. //####################################################//
  242. ispconfig: {
  243. display_name: 'ISPConfig',
  244. package_name: 'certbot-dns-ispconfig',
  245. package_version: '0.2.0',
  246. dependencies: '',
  247. credentials: `certbot_dns_ispconfig:dns_ispconfig_username = myremoteuser
  248. certbot_dns_ispconfig:dns_ispconfig_password = verysecureremoteuserpassword
  249. certbot_dns_ispconfig:dns_ispconfig_endpoint = https://localhost:8080`,
  250. full_plugin_name: 'certbot-dns-ispconfig:dns-ispconfig',
  251. },
  252. //####################################################//
  253. isset: {
  254. display_name: 'Isset',
  255. package_name: 'certbot-dns-isset',
  256. package_version: '0.0.3',
  257. dependencies: '',
  258. credentials: `certbot_dns_isset:dns_isset_endpoint="https://customer.isset.net/api"
  259. certbot_dns_isset:dns_isset_token="<token>"`,
  260. full_plugin_name: 'certbot-dns-isset:dns-isset',
  261. },
  262. //####################################################//
  263. linode: {
  264. display_name: 'Linode',
  265. package_name: 'certbot-dns-linode',
  266. package_version: '1.8.0',
  267. dependencies: '',
  268. credentials: `dns_linode_key = 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ64
  269. dns_linode_version = [<blank>|3|4]`,
  270. full_plugin_name: 'dns-linode',
  271. },
  272. //####################################################//
  273. luadns: {
  274. display_name: 'LuaDNS',
  275. package_name: 'certbot-dns-luadns',
  276. package_version: '1.8.0',
  277. dependencies: '',
  278. credentials: `dns_luadns_email = [email protected]
  279. dns_luadns_token = 0123456789abcdef0123456789abcdef`,
  280. full_plugin_name: 'dns-luadns',
  281. },
  282. //####################################################//
  283. netcup: {
  284. display_name: 'netcup',
  285. package_name: 'certbot-dns-netcup',
  286. package_version: '1.0.0',
  287. dependencies: '',
  288. credentials: `certbot_dns_netcup:dns_netcup_customer_id = 123456
  289. certbot_dns_netcup:dns_netcup_api_key = 0123456789abcdef0123456789abcdef01234567
  290. certbot_dns_netcup:dns_netcup_api_password = abcdef0123456789abcdef01234567abcdef0123`,
  291. full_plugin_name: 'certbot-dns-netcup:dns-netcup',
  292. },
  293. //####################################################//
  294. njalla: {
  295. display_name: 'Njalla',
  296. package_name: 'certbot-dns-njalla',
  297. package_version: '1.0.0',
  298. dependencies: '',
  299. credentials: 'certbot_dns_njalla:dns_njalla_token = 0123456789abcdef0123456789abcdef01234567',
  300. full_plugin_name: 'certbot-dns-njalla:dns-njalla',
  301. },
  302. //####################################################//
  303. nsone: {
  304. display_name: 'NS1',
  305. package_name: 'certbot-dns-nsone',
  306. package_version: '1.8.0',
  307. dependencies: '',
  308. credentials: 'dns_nsone_api_key = MDAwMDAwMDAwMDAwMDAw',
  309. full_plugin_name: 'dns-nsone',
  310. },
  311. //####################################################//
  312. ovh: {
  313. display_name: 'OVH',
  314. package_name: 'certbot-dns-ovh',
  315. package_version: '1.8.0',
  316. dependencies: '',
  317. credentials: `dns_ovh_endpoint = ovh-eu
  318. dns_ovh_application_key = MDAwMDAwMDAwMDAw
  319. dns_ovh_application_secret = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
  320. dns_ovh_consumer_key = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw`,
  321. full_plugin_name: 'dns-ovh',
  322. },
  323. //####################################################//
  324. porkbun: {
  325. display_name: 'Porkbun',
  326. package_name: 'certbot_dns_porkbun',
  327. package_version: '0.2',
  328. dependencies: '',
  329. credentials: `dns_porkbun_key=your-porkbun-api-key
  330. dns_porkbun_secret=your-porkbun-api-secret`,
  331. full_plugin_name: 'dns-porkbun',
  332. },
  333. //####################################################//
  334. powerdns: {
  335. display_name: 'PowerDNS',
  336. package_name: 'certbot-dns-powerdns',
  337. package_version: '0.2.0',
  338. dependencies: '',
  339. credentials: `certbot_dns_powerdns:dns_powerdns_api_url = https://api.mypowerdns.example.org
  340. certbot_dns_powerdns:dns_powerdns_api_key = AbCbASsd!@34`,
  341. full_plugin_name: 'certbot-dns-powerdns:dns-powerdns',
  342. },
  343. //####################################################//
  344. regru: {
  345. display_name: 'reg.ru',
  346. package_name: 'certbot-regru',
  347. package_version: '1.0.2',
  348. dependencies: '',
  349. credentials: `certbot_regru:dns_username=username
  350. certbot_regru:dns_password=password`,
  351. full_plugin_name: 'certbot-regru:dns',
  352. },
  353. //####################################################//
  354. rfc2136: {
  355. display_name: 'RFC 2136',
  356. package_name: 'certbot-dns-rfc2136',
  357. package_version: '1.8.0',
  358. dependencies: '',
  359. credentials: `# Target DNS server
  360. dns_rfc2136_server = 192.0.2.1
  361. # Target DNS port
  362. dns_rfc2136_port = 53
  363. # TSIG key name
  364. dns_rfc2136_name = keyname.
  365. # TSIG key secret
  366. dns_rfc2136_secret = 4q4wM/2I180UXoMyN4INVhJNi8V9BCV+jMw2mXgZw/CSuxUT8C7NKKFs AmKd7ak51vWKgSl12ib86oQRPkpDjg==
  367. # TSIG key algorithm
  368. dns_rfc2136_algorithm = HMAC-SHA512`,
  369. full_plugin_name: 'dns-rfc2136',
  370. },
  371. //####################################################//
  372. route53: {
  373. display_name: 'Route 53 (Amazon)',
  374. package_name: 'certbot-dns-route53',
  375. package_version: '1.8.0',
  376. dependencies: '',
  377. credentials: `[default]
  378. aws_access_key_id=AKIAIOSFODNN7EXAMPLE
  379. aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`,
  380. full_plugin_name: 'dns-route53',
  381. },
  382. //####################################################//
  383. transip: {
  384. display_name: 'TransIP',
  385. package_name: 'certbot-dns-transip',
  386. package_version: '0.3.3',
  387. dependencies: '',
  388. credentials: `certbot_dns_transip:dns_transip_username = my_username
  389. certbot_dns_transip:dns_transip_key_file = /etc/letsencrypt/transip-rsa.key`,
  390. full_plugin_name: 'certbot-dns-transip:dns-transip',
  391. },
  392. //####################################################//
  393. vultr: {
  394. display_name: 'Vultr',
  395. package_name: 'certbot-dns-vultr',
  396. package_version: '1.0.3',
  397. dependencies: '',
  398. credentials: 'certbot_dns_vultr:dns_vultr_key = YOUR_VULTR_API_KEY',
  399. full_plugin_name: 'certbot-dns-vultr:dns-vultr',
  400. },
  401. //####################################################//
  402. dynu: {
  403. display_name: 'Dynu',
  404. package_name: 'certbot-dns-dynu',
  405. package_version: '0.0.1',
  406. dependencies: '',
  407. credentials: 'certbot_dns_dynu:dns_dynu_auth_token = YOUR_DYNU_AUTH_TOKEN',
  408. full_plugin_name: 'certbot-dns-dynu:dns-dynu',
  409. },
  410. };