Search code examples
ssl-certificatepython-asyncioaiohttp

aiohttp how do I retrieve peer certificate?


I want to get the certificate hash. But I have no idea how to get the server peer certificate. Either in the request or response. The server I send the request to sets the Connection close header, so the retrieving the original ssl socket in the response doesn't work.


Solution

  • Currently no way, sorry. You can check a cert hash easy though: https://docs.aiohttp.org/en/stable/client_advanced.html#ssl-control-for-tcp-sockets

    The following example uses SHA-256 fingerprint check:

    fingerprint = b'...'  # should be 64 bytes length hash (256/8)
    
    r = await session.get('https://example.com',
                          ssl=aiohttp.Fingerprint(fingerprint))