Trying to integrate the acmephp library into my project, but I keep getting this error when I attempt to request authorization for a domain
A non-ACME 400 HTTP error occured on request "POST https://acme-v02.api.letsencrypt.org/acme/new-order" (response body: "(truncated...)")
Here's the client initialization code
public function registerWebsite()
{
try {
$secureHttpClientFactory = new SecureHttpClientFactory(
new GuzzleHttpClient(),
new Base64SafeEncoder(),
new KeyParser(),
new DataSigner(),
new ServerErrorHandler()
);
$acmeKeyPath = storage_path('acme-keys');
if (!file_exists($acmeKeyPath)) {
mkdir($acmeKeyPath, 0700, true);
}
$publicKeyPath = $acmeKeyPath . '/account.pub.pem';
$privateKeyPath = $acmeKeyPath . '/account.pem';
if (!file_exists($privateKeyPath)) {
$keyPairGenerator = new KeyPairGenerator();
$keyPair = $keyPairGenerator->generateKeyPair();
file_put_contents($publicKeyPath, $keyPair->getPublicKey()->getPEM());
file_put_contents($privateKeyPath, $keyPair->getPrivateKey()->getPEM());
} else {
$publicKey = new PublicKey(file_get_contents($publicKeyPath));
$privateKey = new PrivateKey(file_get_contents($privateKeyPath));
$keyPair = new KeyPair($publicKey, $privateKey);
}
$secureHttpClient = $secureHttpClientFactory->createSecureHttpClient($keyPair);
$acmeClient = new AcmeClient($secureHttpClient, 'https://acme-staging-v02.api.letsencrypt.org/directory');
$registerResponse = $acmeClient->registerAccount(null, 'kaladakienka@gmail.com');
$authorizationChallenges = $acmeClient->requestAuthorization('http://ssl-ops-staging.thehuddle.nl/');
dd($authorizationChallenges);
} catch (\Exception $ex) {
dd($ex->getMessage());
}
}
Figured this out.
$acmeClient->requestAuthorization('http://ssl-ops-staging.thehuddle.nl/')
should be
$acmeClient->requestAuthorization('ssl-ops-staging.thehuddle.nl');