I\'ve been given a .pem file for authentication on an XML POST API. I would prefer using Python Requests and have found in the documentation that I need to convert the .pem
There's a behaviour of requests (see documentation here) that you can take advantage of here without having to generate a crt
or key files.
Let's say you have the pem
file here: /path/to/certificate.pem
, you can then do:
r = requests.get('https://example.com', verify='/path/to/cetificate.pem')
And it should work perfectly.
The path is given as /path/server.crt, but the text reads, "You can also specify a local cert to use as client side certificate, as a single file (containing the private key and the certificate) or as a tuple of both file’s path..."
Since you have been given a PEM file for authentication, it seems that the client is expected to send a CLIENT certificate. You would need a client certificate and client private key.
Look inside that PEM file and you should see the line "-----BEGIN CERTIFICATE-----". Look further, past the "-----END CERTIFICATE----", is there a "-----BEGIN RSA PRIVATE KEY-----"? If so, you have both the certificate and private key in the same text file, and you can just (according to the doc) use the one file. Or, just cut and paste the RSA key part into a separate text file and name that file "key".