reqman icon indicating copy to clipboard operation
reqman copied to clipboard

Certificate/SSL based authentication

Open CsBigDataHub opened this issue 4 years ago • 2 comments

How do I replicate these commands when creating reqman.conf ?

Essentially enable ssl/certificate based authentication for all my calls?

curl -k https://www.thesitetoauthenticate.com/test -v –key key.pem –cacert ca.pem –cert client.pem
curl --cert-type P12 --cert cert.p12:password https://yoursite.com
curl -E ./file.crt.pem --key ./file.key.pem https://myservice.com/service?wsdl

Thanks

CsBigDataHub avatar Jun 15 '21 21:06 CsBigDataHub

When requests package is used, SSL/certificate based authentication can be achieved like below

def post(url, schema):
    headers = {"Content-Type": "application/json"}
    content_body = {"data": data}
    print("registering schema at url: ", url)
    CACERT = os.path.abspath("../../cert.pem")  # Server certificate chain
    CERT = os.path.abspath("../../cert.crt")  # Client certificate
    KEY = os.path.abspath("../../cert.key")  # Client private key
    try:
        session = requests.Session()
        session.cert = (CERT, KEY)

        r = session.post(url,
                         data=json.dumps(content_body),
                         headers=headers,
                         verify=CACERT)
        print("response status code: ", r.status_code)
        print("response status code: ", r.reason)
        print("response status code: ", r.text)
        if r.status_code >= 300:
            sys.exit(1)
    except requests.exceptions.RequestException as e:
        print(e)
        sys.exit(1)

CsBigDataHub avatar Jun 15 '21 21:06 CsBigDataHub

currently ... reqman bypass totally the SSL part : all requests are "unverified" ! There is no ways to play with certificates/keys ...

Currently it uses the aiohttp module, but plans to go with httpx (when it will support socks proxy (needed at my job)) ... (can't use requests, coz it miss async support) When It will move to httpx, I could plan to use ssl verifications (but it will definitly complexify the thing !)

But sure, it can be more valuable to be able to tests ssl keychains.

manatlan avatar Jun 17 '21 15:06 manatlan