ACME V2 error: HTTP 406 Not Acceptable
Hi,
I developed 3 ACME clients for less tech-savvy users. Two do automation on shared hosting (issue + install SSL). One of them listed on the Let's Encrypt website. One is listed on the WordPress plugin directory.
Today I tried the WordPress plugin with BuyPass ACME V2. Everything went smoothly except for the last step where the client sends a signed request to the finalize URL to get the certificate. Here I am getting 406 not acceptable error (with both staging and production). Complete BuyPass ACME response is given below.
Array ( [code] => 406 [message] => NOT_ACCEPTABLE [details] => HTTP 406 Not Acceptable )
However, I am getting the certificate location too. I have to download the certificate manually and installed.
Could you please help me find out where I am doing wrong?
Domain name: staging5.speedify.tech
CentOS
PHP 7.0
WordPress 5.4.1
I run the PHP script with cron job.
Thanks!
-
Hi Anindya
It looks that there is a content negotiation issue on the endpoint to download the certificate. According to https://tools.ietf.org/html/rfc8555#section-7.4.2 the default format for certificate is application/pem-certificate-chain.
The cause of this error might be that the certificate format, requested in Accept header of the HTTP GET request, is different than application/pem-certificate-chain. We do support also application/pkix-cert format.
If the “*/*” is specified as the Accept header value, then the cert will be returned in default format. To request the cert in application/pkix-cert format, the value “application/pkix-cert” should be set explicitly in the Accept header.
Regards,
Andriy