public function answerChallenge(string $location, string $keyAuth): Promise {
        return call(function () use ($location, $keyAuth) {
            /** @var Response $response */
            $response = yield $this->acmeClient->post($location, [
                'resource' => AcmeResource::CHALLENGE,
                'keyAuthorization' => $keyAuth,
            ]);

            if ($response->getStatus() === 202) {
                return json_decode(yield $response->getBody());
            }

            throw $this->generateException($response, yield $response->getBody());
        });
    }