security/acme-client: add support for dns_namecheap

This commit is contained in:
Frank Wall
2019-05-14 21:00:33 +02:00
parent 0208b3ebb0
commit 433d0b4e5d
3 changed files with 41 additions and 0 deletions
@@ -596,6 +596,27 @@
<label>Secret</label>
<type>text</type>
</field>
<field>
<label>Namecheap</label>
<type>header</type>
<style>table_dns table_dns_namecheap</style>
</field>
<field>
<id>validation.dns_namecheap_user</id>
<label>User</label>
<type>text</type>
</field>
<field>
<id>validation.dns_namecheap_api</id>
<label>API Key</label>
<type>text</type>
</field>
<field>
<id>validation.dns_namecheap_sourceip</id>
<label>Source IP</label>
<type>text</type>
<advanced>true</advanced>
</field>
<field>
<label>Name.com</label>
<type>header</type>
@@ -375,6 +375,7 @@
<dns_linode>Linode API</dns_linode>
<dns_lua>LuaDNS.com API</dns_lua>
<dns_namecom>Name.com API</dns_namecom>
<dns_namecheap>Namecheap API</dns_namecheap>
<dns_namesilo>Namesilo.com API</dns_namesilo>
<dns_nsone>NS1.com API</dns_nsone>
<dns_nsupdate>nsupdate (RFC 2136)</dns_nsupdate>
@@ -601,6 +602,15 @@
<dns_me_secret type="TextField">
<Required>N</Required>
</dns_me_secret>
<dns_namecheap_user type="TextField">
<Required>N</Required>
</dns_namecheap_user>
<dns_namecheap_api type="TextField">
<Required>N</Required>
</dns_namecheap_api>
<dns_namecheap_sourceip type="TextField">
<Required>N</Required>
</dns_namecheap_sourceip>
<dns_namecom_user type="TextField">
<Required>N</Required>
</dns_namecom_user>
@@ -712,6 +712,16 @@ function run_acme_validation($certObj, $valObj, $acctObj)
$proc_env['ME_Key'] = (string)$valObj->dns_me_key;
$proc_env['ME_Secret'] = (string)$valObj->dns_me_secret;
break;
case 'dns_namecheap':
$proc_env['NAMECHEAP_USERNAME'] = (string)$valObj->dns_namecheap_user;
$proc_env['NAMECHEAP_API_KEY'] = (string)$valObj->dns_namecheap_api;
if (!empty((string)$valObj->dns_namecheap_sourceip)) {
$proc_env['NAMECHEAP_SOURCEIP'] = (string)$valObj->dns_namecheap_sourceip;
} else {
// Use a public service to get our source IP for Namecheap API
$proc_env['NAMECHEAP_SOURCEIP'] = 'https://ifconfig.co/ip';
}
break;
case 'dns_namecom':
$proc_env['Namecom_Username'] = (string)$valObj->dns_namecom_user;
$proc_env['Namecom_Token'] = (string)$valObj->dns_namecom_token;