certbot-dns-plugins.js 14 KB

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