Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6761529
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T14:12:11+00:00 2026-05-26T14:12:11+00:00

By pointing my browser to https://graph.facebook.com/me , I get an encrypted HTTPS connection, which

  • 0

By pointing my browser to https://graph.facebook.com/me, I get an encrypted HTTPS connection, which the certificate chain is:

  • DigiCert High Assurance EV Root CA (root)
  • DigiCert High Assurance CA-3
  • *.facebook.com

So I have downloaded the root certificate from https://www.digicert.com/digicert-root-certificates.htm (I have also exported it from my browser, diff shows they are the same thing), and tried to use Python built-in SSL module to verify the authenticity of the connection to graph.facebook.com.

I have just executed the example http://docs.python.org/library/ssl.html#client-side-operation, replacing the ca_cert with “DigiCertHighAssuranceEVRootCA.crt” and the address with graph.facebook.com. The connection attempt fails with the exception:

ssl.SSLError: [Errno 1] _ssl.c:499: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

If I try the same code and certificate against ev-root.digicert.com (which is the address provided by DigiCert for testing if the client can verify their certificate), everything works nicely. Via browser, I could verify that the chain used in this connection is:

  • DigiCert High Assurance EV Root CA (root)
  • DigiCert High Assurance EV CA-1
  • ev-root.digicert.com

By running
ssl.get_server_certificate((‘graph.facebook.com’, 443))
I get the same certificate identifyed as “*.facebook.com” by my browser, what means both Python code and my browser gets the same certificate to validate.

Why Chrome can validate graph.facebook.com with the given root certficate, Python can validate another site with this same root certificate, but Python can not validate graph.facebook.com ?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T14:12:12+00:00Added an answer on May 26, 2026 at 2:12 pm

    I got the answer from the OpenSSL mailing list. It seems that “DigiCert High Assurance EV Root CA” was signed by another certificate authority before being self-signed. Now there are two versions of the certificate. One is bundled with SSL implementations and provided for download by DigiCert, which is self-signed and can be used as Root CA for verifying other certificates it signs. The other version is the one returned by Facebook’s server in the SSL handshake process, which is signed by some Entrust certificate. Both have the same public key and keyid.

    NSS, the SSL implementation of Firefox and Chrome, apparently correctly follows the X.509 specification and ignores the last certificate in the chain sent by the server, and uses its own trusted version of “DigiCert High Assurance EV Root CA” to verify the chain. Python’s implementation is over OpenSSL, which verifies “DigiCert High Assurance CA-3” using the certificate provided by the host, and in turn tries to verify this last one. Since it was signed by other CA, and I did not provided that certificate, it fails. I do not think this behavior is correct, because since I already trust a certificate in the middle of the chain, theoretically I have no need to check the rest.

    My solutions was to provide to the ssl module the Entrust certificate that verifies “DigiCert High Assurance EV Root CA”.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I get a feed which consists of a URL pointing to the videos from
How can I launch the Safari browser or the user's default browser pointing it
I am facing attached warning message in all HTTPS pages in IE browser. I
I'm trying to set up my own http openwrap repository. I've read https://github.com/openrasta/openwrap/wiki/Openwrap-publishing-protocol but
How can I adjust the printing settings of an embeded IE browser in C#?
I'm pointing the .Net command line WSDL utility that ships with Visual Studio 2005
Some API returns me XmlCursor pointing on root of XML Document. I need to
In light of the accepted answer pointing out that returning a non-const reference to
I have an IFrame on my page pointing to a page containing list of
Is there an environment variable pointing to the WiX bin directory path? I want

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.