Strange problem with Pebble

I've been developing an ACME client against the staging server, but have switched to testing with Pebble.

When making a new account request to Pebble I get this problem response,

{
  type: "urn:ietf:params:acme:error:malformed",
  detail: "JWS header parameter 'url' incorrect. Expected \"https://localhost:14000/https://localhost:14000/sign-me-up\", got \"https://localhost:14000/sign-me-up\"",
  status: 400
}

Pebble expects the url field to be https://localhost:14000/https://localhost:14000/sign-me-up?

This doesn't seem right.

Pebble is run in a container with this command,

"pebble",
"-config",
"/test/config/pebble-config.json",
"-strict",
"-dnsserver",
"10.30.50.3:8053"

pebble-config.json,

{
  "pebble": {
    "listenAddress": "0.0.0.0:14000",
    "managementListenAddress": "0.0.0.0:15000",
    "certificate": "test/certs/localhost/cert.pem",
    "privateKey": "test/certs/localhost/key.pem",
    "httpPort": 5002,
    "tlsPort": 5001,
    "ocspResponderURL": "",
    "externalAccountBindingRequired": false
  }
}

Any ideas?

1 Like

Can you share the contents of pebble-config.json? Not sure if it'll help, but probably a good idea to show it, so others won't ask for it later :stuck_out_tongue:

2 Likes

Pebble reflects the the Request-URI and Host request header when it checks for URL correctness.

You might be sending:

GET https://localhost:14000/sign-me-up HTTP/1.1
Host: localhost:14000

Which, while is technically correct, isn't supported by Pebble.

8 Likes

Thanks. That’s what it was. Request URI

2 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.