Search code examples
sslurllib2python-2.6http-proxypki

PKI authentication over proxy, python 2.6.6


I am trying to do PKI based authentication over proxy. It works well without proxy, but asa I add proxy info it returns 401 error.

proxies = {
  'http': "http://10.192.72.155:8080",
  'https': "http://10.192.72.155:8080",
}

def open_url(url, key, cert):


    headers = {"User-Agent": "<custom>", "Accept": "<custom>"}
    response = requests.get(url, headers=headers, cert=(cert,key), timeout=300)
    print response.headers, response

open_url("https://api.example.com/product/LatestUpdate", "/usr/bin/dev_certs/test_cert.key", "/usr/bin/dev_certs/test_cert.pem")

The above implementation works well, untill I add proxies to the requests.get()

response = requests.get(url, headers=headers, proxies=proxies, cert=(cert,key), timeout=300)

which returns following error:

HTTP/1.0 401 Unauthorized
WWW-Authenticate: Basic realm=""
Server: SomeServer
Connection: Keep-Alive Content-Length: 35


Solution

  • The issue was my proxy setup, it was also decrypting HTTPS traffic, because of which it was not passing the original Certificate. It worked after I disable HTTPS decryption.