mirror of
				https://github.com/hiskang/acme.sh
				synced 2025-10-31 02:17:18 +00:00 
			
		
		
		
	add --ocsp-must-staple, --ocsp
This commit is contained in:
		
							parent
							
								
									7b16442656
								
							
						
					
					
						commit
						0c9546ccb0
					
				
							
								
								
									
										66
									
								
								acme.sh
									
									
									
									
									
								
							
							
						
						
									
										66
									
								
								acme.sh
									
									
									
									
									
								
							| @ -1,6 +1,6 @@ | |||||||
| #!/usr/bin/env sh | #!/usr/bin/env sh | ||||||
| 
 | 
 | ||||||
| VER=2.5.0 | VER=2.5.1 | ||||||
| 
 | 
 | ||||||
| PROJECT_NAME="acme.sh" | PROJECT_NAME="acme.sh" | ||||||
| 
 | 
 | ||||||
| @ -163,11 +163,11 @@ _hasfield() { | |||||||
|    |    | ||||||
|   for f in $(echo "$_str" |  tr ',' ' ') ; do |   for f in $(echo "$_str" |  tr ',' ' ') ; do | ||||||
|     if [ "$f" = "$_field" ] ; then |     if [ "$f" = "$_field" ] ; then | ||||||
|       _debug "'$_str' contains '$_field'" |       _debug2 "'$_str' contains '$_field'" | ||||||
|       return 0 #contains ok |       return 0 #contains ok | ||||||
|     fi |     fi | ||||||
|   done |   done | ||||||
|   _debug "'$_str' does not contain '$_field'" |   _debug2 "'$_str' does not contain '$_field'" | ||||||
|   return 1 #not contains  |   return 1 #not contains  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -440,16 +440,20 @@ _createcsr() { | |||||||
|   _debug _createcsr |   _debug _createcsr | ||||||
|   domain="$1" |   domain="$1" | ||||||
|   domainlist="$2" |   domainlist="$2" | ||||||
|   key="$3" |   csrkey="$3" | ||||||
|   csr="$4" |   csr="$4" | ||||||
|   csrconf="$5" |   csrconf="$5" | ||||||
|   _debug2 domain "$domain" |   _debug2 domain "$domain" | ||||||
|   _debug2 domainlist "$domainlist" |   _debug2 domainlist "$domainlist" | ||||||
|  |   _debug2 csrkey "$csrkey" | ||||||
|  |   _debug2 csr "$csr" | ||||||
|  |   _debug2 csrconf "$csrconf" | ||||||
|  |    | ||||||
|  |   printf "[ req_distinguished_name ]\n[ req ]\ndistinguished_name = req_distinguished_name\nreq_extensions = v3_req\n[ v3_req ]\n\nkeyUsage = nonRepudiation, digitalSignature, keyEncipherment" > "$csrconf" | ||||||
|  |    | ||||||
|   if [ -z "$domainlist" ] || [ "$domainlist" = "no" ]; then |   if [ -z "$domainlist" ] || [ "$domainlist" = "no" ]; then | ||||||
|     #single domain |     #single domain | ||||||
|     _info "Single domain" "$domain" |     _info "Single domain" "$domain" | ||||||
|     printf "[ req_distinguished_name ]\n[ req ]\ndistinguished_name = req_distinguished_name\n" > "$csrconf" |  | ||||||
|     openssl req -new -sha256 -key "$key" -subj "/CN=$domain" -config "$csrconf" -out "$csr" |  | ||||||
|   else |   else | ||||||
|     if _contains "$domainlist" "," ; then |     if _contains "$domainlist" "," ; then | ||||||
|       alt="DNS:$(echo $domainlist | sed "s/,/,DNS:/g")" |       alt="DNS:$(echo $domainlist | sed "s/,/,DNS:/g")" | ||||||
| @ -458,9 +462,13 @@ _createcsr() { | |||||||
|     fi |     fi | ||||||
|     #multi  |     #multi  | ||||||
|     _info "Multi domain" "$alt" |     _info "Multi domain" "$alt" | ||||||
|     printf -- "[ req_distinguished_name ]\n[ req ]\ndistinguished_name = req_distinguished_name\nreq_extensions = v3_req\n[ v3_req ]\nkeyUsage = nonRepudiation, digitalSignature, keyEncipherment\nsubjectAltName=$alt" > "$csrconf" |     printf -- "\nsubjectAltName=$alt" >> "$csrconf" | ||||||
|     openssl req -new -sha256 -key "$key" -subj "/CN=$domain" -config "$csrconf" -out "$csr" |  | ||||||
|   fi |   fi | ||||||
|  |   if [ "$Le_OCSP_Stable" ] ; then | ||||||
|  |     _savedomainconf Le_OCSP_Stable "$Le_OCSP_Stable" | ||||||
|  |     printf -- "\nbasicConstraints = CA:FALSE\n1.3.6.1.5.5.7.1.24=DER:30:03:02:01:05" >> "$csrconf" | ||||||
|  |   fi | ||||||
|  |   openssl req -new -sha256 -key "$csrkey" -subj "/CN=$domain" -config "$csrconf" -out "$csr" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #_signcsr key  csr  conf cert | #_signcsr key  csr  conf cert | ||||||
| @ -1066,56 +1074,56 @@ _setopt() { | |||||||
| #_savedomainconf   key  value | #_savedomainconf   key  value | ||||||
| #save to domain.conf | #save to domain.conf | ||||||
| _savedomainconf() { | _savedomainconf() { | ||||||
|   key="$1" |   _sdkey="$1" | ||||||
|   value="$2" |   _sdvalue="$2" | ||||||
|   if [ "$DOMAIN_CONF" ] ; then |   if [ "$DOMAIN_CONF" ] ; then | ||||||
|     _setopt "$DOMAIN_CONF" "$key" "=" "\"$value\"" |     _setopt "$DOMAIN_CONF" "$_sdkey" "=" "\"$_sdvalue\"" | ||||||
|   else |   else | ||||||
|     _err "DOMAIN_CONF is empty, can not save $key=$value" |     _err "DOMAIN_CONF is empty, can not save $_sdkey=$_sdvalue" | ||||||
|   fi |   fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #_cleardomainconf   key | #_cleardomainconf   key | ||||||
| _cleardomainconf() { | _cleardomainconf() { | ||||||
|   key="$1" |   _sdkey="$1" | ||||||
|   if [ "$DOMAIN_CONF" ] ; then |   if [ "$DOMAIN_CONF" ] ; then | ||||||
|     _sed_i "s/^$key.*$//"  "$DOMAIN_CONF" |     _sed_i "s/^$_sdkey.*$//"  "$DOMAIN_CONF" | ||||||
|   else |   else | ||||||
|     _err "DOMAIN_CONF is empty, can not save $key=$value" |     _err "DOMAIN_CONF is empty, can not save $_sdkey=$value" | ||||||
|   fi |   fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #_readdomainconf   key | #_readdomainconf   key | ||||||
| _readdomainconf() { | _readdomainconf() { | ||||||
|   key="$1" |   _sdkey="$1" | ||||||
|   if [ "$DOMAIN_CONF" ] ; then |   if [ "$DOMAIN_CONF" ] ; then | ||||||
|   ( |   ( | ||||||
|     eval $(grep "^$key *=" "$DOMAIN_CONF") |     eval $(grep "^$_sdkey *=" "$DOMAIN_CONF") | ||||||
|     eval "printf \"%s\" \"\$$key\"" |     eval "printf \"%s\" \"\$$_sdkey\"" | ||||||
|   ) |   ) | ||||||
|   else |   else | ||||||
|     _err "DOMAIN_CONF is empty, can not read $key" |     _err "DOMAIN_CONF is empty, can not read $_sdkey" | ||||||
|   fi |   fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #_saveaccountconf  key  value | #_saveaccountconf  key  value | ||||||
| _saveaccountconf() { | _saveaccountconf() { | ||||||
|   key="$1" |   _sckey="$1" | ||||||
|   value="$2" |   _scvalue="$2" | ||||||
|   if [ "$ACCOUNT_CONF_PATH" ] ; then |   if [ "$ACCOUNT_CONF_PATH" ] ; then | ||||||
|     _setopt "$ACCOUNT_CONF_PATH" "$key" "=" "\"$value\"" |     _setopt "$ACCOUNT_CONF_PATH" "$_sckey" "=" "\"$_scvalue\"" | ||||||
|   else |   else | ||||||
|     _err "ACCOUNT_CONF_PATH is empty, can not save $key=$value" |     _err "ACCOUNT_CONF_PATH is empty, can not save $_sckey=$_scvalue" | ||||||
|   fi |   fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #_clearaccountconf   key | #_clearaccountconf   key | ||||||
| _clearaccountconf() { | _clearaccountconf() { | ||||||
|   key="$1" |   _scvalue="$1" | ||||||
|   if [ "$ACCOUNT_CONF_PATH" ] ; then |   if [ "$ACCOUNT_CONF_PATH" ] ; then | ||||||
|     _sed_i "s/^$key.*$//"  "$ACCOUNT_CONF_PATH" |     _sed_i "s/^$_scvalue.*$//"  "$ACCOUNT_CONF_PATH" | ||||||
|   else |   else | ||||||
|     _err "ACCOUNT_CONF_PATH is empty, can not clear $key" |     _err "ACCOUNT_CONF_PATH is empty, can not clear $_scvalue" | ||||||
|   fi |   fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -1357,7 +1365,7 @@ _initpath() { | |||||||
|   fi |   fi | ||||||
|    |    | ||||||
|   if [ -z "$DOMAIN_SSL_CONF" ] ; then |   if [ -z "$DOMAIN_SSL_CONF" ] ; then | ||||||
|     DOMAIN_SSL_CONF="$DOMAIN_PATH/$domain.ssl.conf" |     DOMAIN_SSL_CONF="$DOMAIN_PATH/$domain.csr.conf" | ||||||
|   fi |   fi | ||||||
|    |    | ||||||
|   if [ -z "$CSR_PATH" ] ; then |   if [ -z "$CSR_PATH" ] ; then | ||||||
| @ -3079,6 +3087,7 @@ Parameters: | |||||||
|   --pre-hook                        Command to be run before obtaining any certificates. |   --pre-hook                        Command to be run before obtaining any certificates. | ||||||
|   --post-hook                       Command to be run after attempting to obtain/renew certificates. No matter the obain/renew is success or failed. |   --post-hook                       Command to be run after attempting to obtain/renew certificates. No matter the obain/renew is success or failed. | ||||||
|   --renew-hook                      Command to be run once for each successfully renewed certificate. |   --renew-hook                      Command to be run once for each successfully renewed certificate. | ||||||
|  |   --ocsp-must-staple, --ocsp        Generate ocsp must Staple extension. | ||||||
|   " |   " | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -3431,6 +3440,9 @@ _process() { | |||||||
|         _renew_hook="$2" |         _renew_hook="$2" | ||||||
|         shift |         shift | ||||||
|         ;; |         ;; | ||||||
|  |     --ocsp-must-staple|--ocsp) | ||||||
|  |         Le_OCSP_Stable="1" | ||||||
|  |         ;; | ||||||
|     *) |     *) | ||||||
|         _err "Unknown parameter : $1" |         _err "Unknown parameter : $1" | ||||||
|         return 1 |         return 1 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user