Hi Anatol

On Thu, Mar 23, 2017 at 2:19 AM, Anatol Belski <a...@php.net> wrote:

> Hi Jakub,
>
>
>
> While working on the OpenSSL 1.1 integration, I’ve stumbled over this
> issue with the sni server test ext/openssl/tests/sni_server.phpt which
> fails with
>
>
>
> error:1416F086:SSL routines:tls_process_server_certificate:certificate
> verify failed
>
>
>
> I debugged through it and in the end it turns out, that likely the test CA
> might be not compatible with the latest OpenSSL, at least with the vanilla
> build with the default options. I use the default OpenSSL build with static
> engines, as usual. It excludes quite some weak functionality, so I guess
> we’ve no actual bug. Please also see the checks I made with the console tool
>
>
>
> C:\php-sdk\php71\vc14\x64\php-src
>
> $ openssl version
>
> OpenSSL 1.0.2k  26 Jan 2017
>
>
>
> C:\php-sdk\php71\vc14\x64\php-src
>
> $ openssl.exe verify -CAfile ext\openssl\tests\sni_server_ca.pem
> ext\openssl\tests\sni_server_domain1.pem
>
> ext\openssl\tests\sni_server_domain1.pem: OK
>
>
>
>
>
> On master with OpenSSL 1.1 however, seems the CA is invalid
>
>
>
> C:\php-sdk\phpmaster\vc15\x64\php-src
>
> $ openssl version
>
> OpenSSL 1.1.0e  16 Feb 2017
>
>
>
> C:\php-sdk\phpmaster\vc15\x64\php-src
>
> $ openssl verify -CAfile ext\openssl\tests\sni_server_ca.pem
> ext\openssl\tests\sni_server_domain1.pem
>
> C = US, ST = SC, L = Myrtle Beach, O = php.tests subordinate, CN =
> php.tests.subordinate
>
> error 24 at 1 depth lookup: invalid CA certificate
>
> error ext\openssl\tests\sni_server_domain1.pem: verification failed
>
>
>
> As mentioned, there’s likely no bug, but I think it were not bad to double
> check this test. A fix to it could be to just produce another keys and CA
> with stronger dependency. I currently added a skip to the aforementioned
> test in master, mainly as I’m about to switch AppVeyor to newer deps and
> vc15 and the test were producing the fails all the time. Also not sure,
> which OpenSSL version Travis runs currently, but I had this test failing on
> Linux with the vanilla OpenSSL 1.1 build as well.
>
>
>

Yep I have been looking a little bit and it really seems that it is about
the CA cert and OpenSSL 1.1 is a bit more strict about verification of it.
IIRC it was failing on extension part when I was quickly debugging it. When
I check purpose using

$ openssl x509 -in sni_server_ca.pem -purpose

then it is visible that the cert is not a server CA which should probably
be but not sure if that's the reason. I think we will need to use a
different cert for that test. I have got it on my todo list so hopefully
will add something more sensible that works soon unless you want to do it.
Until then skip is fine ;)

Cheers

Jakub

Reply via email to