forked from root/acme.js
		
	v1.5.1: more detailed error messages
This commit is contained in:
		
							parent
							
								
									d802fb4957
								
							
						
					
					
						commit
						382ef3c95c
					
				
							
								
								
									
										44
									
								
								node.js
									
									
									
									
									
								
							
							
						
						
									
										44
									
								
								node.js
									
									
									
									
									
								
							@ -35,7 +35,7 @@ ACME.challengeTests = {
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      err = new Error(
 | 
					      err = new Error(
 | 
				
			||||||
        "Error: Failed HTTP-01 Dry Run.\n"
 | 
					        "Error: Failed HTTP-01 Pre-Flight / Dry Run.\n"
 | 
				
			||||||
      + "curl '" + url + "'\n"
 | 
					      + "curl '" + url + "'\n"
 | 
				
			||||||
      + "Expected: '" + auth.keyAuthorization + "'\n"
 | 
					      + "Expected: '" + auth.keyAuthorization + "'\n"
 | 
				
			||||||
      + "Got: '" + resp.body + "'\n"
 | 
					      + "Got: '" + resp.body + "'\n"
 | 
				
			||||||
@ -60,7 +60,7 @@ ACME.challengeTests = {
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      err = new Error(
 | 
					      err = new Error(
 | 
				
			||||||
        "Error: Failed DNS-01 Dry Run.\n"
 | 
					        "Error: Failed DNS-01 Pre-Flight Dry Run.\n"
 | 
				
			||||||
      + "dig TXT '" + hostname + "' does not return '" + auth.dnsAuthorization + "'\n"
 | 
					      + "dig TXT '" + hostname + "' does not return '" + auth.dnsAuthorization + "'\n"
 | 
				
			||||||
      + "See https://git.coolaj86.com/coolaj86/acme-v2.js/issues/4"
 | 
					      + "See https://git.coolaj86.com/coolaj86/acme-v2.js/issues/4"
 | 
				
			||||||
      );
 | 
					      );
 | 
				
			||||||
@ -359,7 +359,9 @@ ACME._postChallenge = function (me, options, identifier, ch) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  function pollStatus() {
 | 
					  function pollStatus() {
 | 
				
			||||||
    if (count >= MAX_POLL) {
 | 
					    if (count >= MAX_POLL) {
 | 
				
			||||||
      return Promise.reject(new Error("[acme-v2] stuck in bad pending/processing state"));
 | 
					      return Promise.reject(new Error(
 | 
				
			||||||
 | 
					        "[acme-v2] stuck in bad pending/processing state for '" + identifier.value + "'"
 | 
				
			||||||
 | 
					      ));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    count += 1;
 | 
					    count += 1;
 | 
				
			||||||
@ -395,17 +397,18 @@ ACME._postChallenge = function (me, options, identifier, ch) {
 | 
				
			|||||||
        return resp.body;
 | 
					        return resp.body;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      var errmsg;
 | 
				
			||||||
      if (!resp.body.status) {
 | 
					      if (!resp.body.status) {
 | 
				
			||||||
        console.error("[acme-v2] (E_STATE_EMPTY) empty challenge state:");
 | 
					        errmsg = "[acme-v2] (E_STATE_EMPTY) empty challenge state for '" + identifier.value + "':";
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      else if ('invalid' === resp.body.status) {
 | 
					      else if ('invalid' === resp.body.status) {
 | 
				
			||||||
        console.error("[acme-v2] (E_STATE_INVALID) challenge state: '" + resp.body.status + "'");
 | 
					        errmsg = "[acme-v2] (E_STATE_INVALID) challenge state for '" + identifier.value + "': '" + resp.body.status + "'";
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      else {
 | 
					      else {
 | 
				
			||||||
        console.error("[acme-v2] (E_STATE_UKN) challenge state: '" + resp.body.status + "'");
 | 
					        errmsg = "[acme-v2] (E_STATE_UKN) challenge state for '" + identifier.value + "': '" + resp.body.status + "'";
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      return Promise.reject(new Error("[acme-v2] [error] unacceptable challenge state '" + resp.body.status + "'"));
 | 
					      return Promise.reject(new Error(errmsg));
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -511,7 +514,9 @@ ACME._finalizeOrder = function (me, options, validatedDomains) {
 | 
				
			|||||||
      if ('pending' === resp.body.status) {
 | 
					      if ('pending' === resp.body.status) {
 | 
				
			||||||
        return Promise.reject(new Error(
 | 
					        return Promise.reject(new Error(
 | 
				
			||||||
          "Did not finalize order: status 'pending'."
 | 
					          "Did not finalize order: status 'pending'."
 | 
				
			||||||
        + " Best guess: You have not accepted at least one challenge for each domain." + "\n\n"
 | 
					        + " Best guess: You have not accepted at least one challenge for each domain:\n"
 | 
				
			||||||
 | 
					        + "Requested: '" + options.domains.join(', ') + "'\n"
 | 
				
			||||||
 | 
					        + "Validated: '" + validatedDomains.join(', ') + "'\n"
 | 
				
			||||||
        + JSON.stringify(resp.body, null, 2)
 | 
					        + JSON.stringify(resp.body, null, 2)
 | 
				
			||||||
        ));
 | 
					        ));
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@ -520,7 +525,9 @@ ACME._finalizeOrder = function (me, options, validatedDomains) {
 | 
				
			|||||||
        return Promise.reject(new Error(
 | 
					        return Promise.reject(new Error(
 | 
				
			||||||
          "Did not finalize order: status 'invalid'."
 | 
					          "Did not finalize order: status 'invalid'."
 | 
				
			||||||
        + " Best guess: One or more of the domain challenges could not be verified"
 | 
					        + " Best guess: One or more of the domain challenges could not be verified"
 | 
				
			||||||
        + " (or the order was canceled)." + "\n\n"
 | 
					        + " (or the order was canceled).\n"
 | 
				
			||||||
 | 
					        + "Requested: '" + options.domains.join(', ') + "'\n"
 | 
				
			||||||
 | 
					        + "Validated: '" + validatedDomains.join(', ') + "'\n"
 | 
				
			||||||
        + JSON.stringify(resp.body, null, 2)
 | 
					        + JSON.stringify(resp.body, null, 2)
 | 
				
			||||||
        ));
 | 
					        ));
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@ -529,7 +536,9 @@ ACME._finalizeOrder = function (me, options, validatedDomains) {
 | 
				
			|||||||
        return Promise.reject(new Error(
 | 
					        return Promise.reject(new Error(
 | 
				
			||||||
          "Did not finalize order: status 'ready'."
 | 
					          "Did not finalize order: status 'ready'."
 | 
				
			||||||
        + " Hmmm... this state shouldn't be possible here. That was the last state."
 | 
					        + " Hmmm... this state shouldn't be possible here. That was the last state."
 | 
				
			||||||
        + " This one should at least be 'processing'." + "\n\n"
 | 
					        + " This one should at least be 'processing'.\n"
 | 
				
			||||||
 | 
					        + "Requested: '" + options.domains.join(', ') + "'\n"
 | 
				
			||||||
 | 
					        + "Validated: '" + validatedDomains.join(', ') + "'\n"
 | 
				
			||||||
        + JSON.stringify(resp.body, null, 2) + "\n\n"
 | 
					        + JSON.stringify(resp.body, null, 2) + "\n\n"
 | 
				
			||||||
        + "Please open an issue at https://git.coolaj86.com/coolaj86/acme-v2.js"
 | 
					        + "Please open an issue at https://git.coolaj86.com/coolaj86/acme-v2.js"
 | 
				
			||||||
        ));
 | 
					        ));
 | 
				
			||||||
@ -537,7 +546,9 @@ ACME._finalizeOrder = function (me, options, validatedDomains) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
      return Promise.reject(new Error(
 | 
					      return Promise.reject(new Error(
 | 
				
			||||||
        "Didn't finalize order: Unhandled status '" + resp.body.status + "'."
 | 
					        "Didn't finalize order: Unhandled status '" + resp.body.status + "'."
 | 
				
			||||||
      + " This is not one of the known statuses...\n\n"
 | 
					      + " This is not one of the known statuses...\n"
 | 
				
			||||||
 | 
					      + "Requested: '" + options.domains.join(', ') + "'\n"
 | 
				
			||||||
 | 
					      + "Validated: '" + validatedDomains.join(', ') + "'\n"
 | 
				
			||||||
      + JSON.stringify(resp.body, null, 2) + "\n\n"
 | 
					      + JSON.stringify(resp.body, null, 2) + "\n\n"
 | 
				
			||||||
      + "Please open an issue at https://git.coolaj86.com/coolaj86/acme-v2.js"
 | 
					      + "Please open an issue at https://git.coolaj86.com/coolaj86/acme-v2.js"
 | 
				
			||||||
      ));
 | 
					      ));
 | 
				
			||||||
@ -605,9 +616,10 @@ ACME._getCertificate = function (me, options) {
 | 
				
			|||||||
        //if (me.debug) console.debug('[DEBUG] finalize:', me._finalize); return;
 | 
					        //if (me.debug) console.debug('[DEBUG] finalize:', me._finalize); return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!me._authorizations) {
 | 
					        if (!me._authorizations) {
 | 
				
			||||||
          console.error("[acme-v2.js] authorizations were not fetched:");
 | 
					          return Promise.reject(new Error(
 | 
				
			||||||
          console.error(resp.body);
 | 
					            "[acme-v2.js] authorizations were not fetched for '" + options.domains.join() + "':\n"
 | 
				
			||||||
          return Promise.reject(new Error("authorizations were not fetched"));
 | 
					            + JSON.stringify(resp.body)
 | 
				
			||||||
 | 
					          ));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (me.debug) { console.debug("[acme-v2] POST newOrder has authorizations"); }
 | 
					        if (me.debug) { console.debug("[acme-v2] POST newOrder has authorizations"); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -633,7 +645,9 @@ ACME._getCertificate = function (me, options) {
 | 
				
			|||||||
            })[0];
 | 
					            })[0];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (!challenge) {
 | 
					            if (!challenge) {
 | 
				
			||||||
              return Promise.reject(new Error("Server didn't offer any challenge we can handle."));
 | 
					              return Promise.reject(new Error(
 | 
				
			||||||
 | 
					                "Server didn't offer any challenge we can handle for '" + options.domains.join() + "'."
 | 
				
			||||||
 | 
					              ));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return ACME._postChallenge(me, options, results.identifier, challenge);
 | 
					            return ACME._postChallenge(me, options, results.identifier, challenge);
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "acme-v2",
 | 
					  "name": "acme-v2",
 | 
				
			||||||
  "version": "1.5.0",
 | 
					  "version": "1.5.1",
 | 
				
			||||||
  "description": "Free SSL. A framework for building Let's Encrypt v2 clients, and other ACME v2 (draft 11) clients. Successor to le-acme-core.js",
 | 
					  "description": "Free SSL. A framework for building Let's Encrypt v2 clients, and other ACME v2 (draft 11) clients. Successor to le-acme-core.js",
 | 
				
			||||||
  "homepage": "https://git.coolaj86.com/coolaj86/acme-v2.js",
 | 
					  "homepage": "https://git.coolaj86.com/coolaj86/acme-v2.js",
 | 
				
			||||||
  "main": "node.js",
 | 
					  "main": "node.js",
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user