mirror of
				https://github.com/hiskang/acme.sh
				synced 2025-10-30 18:07:15 +00:00 
			
		
		
		
	Merge pull request #46 from Neilpang/dnsapi
how to use cloudflare api and create custom api
This commit is contained in:
		
						commit
						1e867b3b40
					
				
							
								
								
									
										45
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										45
									
								
								README.md
									
									
									
									
									
								
							| @ -139,9 +139,6 @@ Support the latest dns-01 challenge. | ||||
| le  issue   dns   aa.com  www.aa.com,user.aa.com | ||||
| ``` | ||||
| 
 | ||||
| Use domain api to automatically add dns record is not finished yet. | ||||
| So, you must manually add the txt record to finish verifying. | ||||
| 
 | ||||
| You will get the output like bellow: | ||||
| ``` | ||||
| Add the following txt record: | ||||
| @ -165,6 +162,48 @@ Ok, it's finished. | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| # Use CloudFlare domain api to automatically issue cert | ||||
| 
 | ||||
| For now, we support clourflare integeration. | ||||
| 
 | ||||
| First you need to login to your clourflare account to get you apikey. | ||||
| 
 | ||||
| Then open `~/.le/dnsapi/dns-cf.sh`, and fill your api key and email there: | ||||
| and uncomment the lines: | ||||
| ``` | ||||
| CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje" | ||||
| 
 | ||||
| CF_Email="xxxx@sss.com" | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| Ok, let's issue cert now: | ||||
| ``` | ||||
| le.sh   issue   dns-cf   aa.com  www.aa.com | ||||
| ``` | ||||
| 
 | ||||
| More api integerations are coming. Godaddy, Dnspod, etc.... | ||||
| 
 | ||||
| 
 | ||||
| # Use custom api | ||||
| 
 | ||||
| If your api is not supported yet,  you can write your own dns api. | ||||
| 
 | ||||
| Let's assume you want to name it 'myapi', | ||||
| 
 | ||||
| 1. Create a bash script named  `~/.le/dns-myapi.sh`, | ||||
| 2. In the scrypt, you must have a function named `dns-myapi-add()`. Which will be called by le.sh to add dns records. | ||||
| 3. Then you can use your api to issue cert like: | ||||
| 
 | ||||
| ``` | ||||
| le.sh  issue  dns-myapi  aa.com  www.aa.com | ||||
| ``` | ||||
| 
 | ||||
| For more details, please check our sample script: `dnsapi/dns-myapi.sh` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| #Under the Hood | ||||
| 
 | ||||
| Speak ACME language with bash directly to Let's encrypt. | ||||
|  | ||||
| @ -16,6 +16,12 @@ dns-cf-add() { | ||||
|   fulldomain=$1 | ||||
|   txtvalue=$2 | ||||
|    | ||||
|   if [ -z "$CF_Key" ] || [ -z "$CF_Email" ] ; then | ||||
|     _err "You don't specify cloudflare api key and email yet." | ||||
|     _err "Please create you key and try again." | ||||
|     return 1 | ||||
|   fi | ||||
|    | ||||
|   _debug "First detect the root zone" | ||||
|   if ! _get_root $fulldomain ; then | ||||
|     _err "invalid domain" | ||||
|  | ||||
							
								
								
									
										61
									
								
								dnsapi/dns-myapi.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								dnsapi/dns-myapi.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,61 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| #Here is a sample custom api script. | ||||
| #This file name is "dhs-myapi.sh" | ||||
| #So, here must be a method   dhs-myapi-add() | ||||
| #Which will be called by le.sh to add the txt record to your api system. | ||||
| #returns 0 meanst success, otherwise error. | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ########  Public functions ##################### | ||||
| 
 | ||||
| #Usage: add   _acme-challenge.www.domain.com   "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" | ||||
| dns-myapi-add() { | ||||
|   fulldomain=$1 | ||||
|   txtvalue=$2 | ||||
|   _err "Not implemented!" | ||||
|   return 1; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ####################  Private functions bellow ################################## | ||||
| 
 | ||||
| 
 | ||||
| _debug() { | ||||
| 
 | ||||
|   if [ -z "$DEBUG" ] ; then | ||||
|     return | ||||
|   fi | ||||
|    | ||||
|   if [ -z "$2" ] ; then | ||||
|     echo $1 | ||||
|   else | ||||
|     echo "$1"="$2" | ||||
|   fi | ||||
| } | ||||
| 
 | ||||
| _info() { | ||||
|   if [ -z "$2" ] ; then | ||||
|     echo "$1" | ||||
|   else | ||||
|     echo "$1"="$2" | ||||
|   fi | ||||
| } | ||||
| 
 | ||||
| _err() { | ||||
|   if [ -z "$2" ] ; then | ||||
|     echo "$1" >&2 | ||||
|   else | ||||
|     echo "$1"="$2" >&2 | ||||
|   fi | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user