At most one of CA-1 and CA-2 would be part of the chain from Baltimore to the end cert.

However your end cert (apparently for hosted Sharepoint services) was issued by a 3rd MSIT CA that was not provided. If it wasn't provided to the code either, the chain would not validate for that reason alone.

I also note that none of the certs in the chain contain any Authority Information Access (AIA) extension (issuer certificate download URL and OCSP URL) only a CRL URL extension, which wouldn't be normal MS practice (Certificate revocation cannot be detected by some browsers that use only OCSP and the automatic certificate download done by some Microsoft Windows Security Support Providers (such as CredSSP) won't work).

Oh and you are not posting from an official Microsoft e-mail address either.

Something seems very odd here.

On 16/11/2015 17:48, Jayalakshmi bhat wrote:
Hi Matt,

Thank you for the response. I have attached the certificates details. My apology I am not supposed to share the certificates. We are not using X509_VERIFY_PARAM_xxx API's. We are using 4 certificates with the device.

1. Root CA- Baltimore CyberTrust Root
2. Intermediate CA-1 - Microsoft Internet Authority
3. Intermediate CA-2 - Microsoft IT SSL SHA2
4. ID certificate - *.sharepoint.com <http://sharepoint.com/>

Intermediate CAs are issued by the above Root CA. Issue is seen when all 4 certificates are installed. Error happens with the intermediate CA-2. check_trust returns X509_TRUST_UNTRUSTED. However if I do not install intermediate CA-2 things works fine.

Any help is well appreciated.

Regards
Jayalakshmi

On Mon, Nov 16, 2015 at 2:52 PM, Matt Caswell <m...@openssl.org <mailto:m...@openssl.org>> wrote:



    On 16/11/15 06:52, Jayalakshmi bhat wrote:
    > Hi Victor,
    >
    > Thanks a lot for details explanation.
    >
    > Our device acts as TLS/SSL client.  The device receives chain of
    > certificates as part of SSL handshake, when it is trying to get
    > connected to TLS/SSL server like sharepoint 365.
    >
    > While validating the certificate chain from server, "*check_trust"
    > *fails with X509_V_ERR_CERT_UNTRUSTED.
    >
    > This had been working fine with OpenSSL 1.0.1c.
    >
    > When I checked the code execution, check_trust was not being
    called  in
    > OpenSSL 1.0.1c as "if (param->trust > 0)" was not satisfied.
    >
    > That is why I wanted to know is it mandatory for the applications to
    > set X509_VERIFY_PARAM in X509_STORE_CTX


    Are you able to share the certificates that the server provides you
    with? Also the root certificate you are using.

    It is not mandatory to set X509_VERIFY_PARAMs (but typically you at
    least want to verify the hostname through a call to
    "X509_VERIFY_PARAM_set1_host"). Are you currently do anything like
    this?


Enjoy

Jakob
--
Jakob Bohm, CIO, Partner, WiseMo A/S.  https://www.wisemo.com
Transformervej 29, 2860 Søborg, Denmark.  Direct +45 31 13 16 10
This public discussion message is non-binding and may contain errors.
WiseMo - Remote Service Management for PCs, Phones and Embedded

_______________________________________________
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users

Reply via email to