p12 certs to pem etc

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

p12 certs to pem etc

MikeKJ
Using this snippet from The Random Engineer

from OpenSSL.crypto import load_pkcs12, FILETYPE_PEM, FILETYPE_ASN1
 
with open('cert.p12', 'rb') as f:
  c = f.read()
 
p = load_pkcs12(c, 'passphrase')
 
certificate = p.get_certificate()
private_key = p.get_privatekey()
 
# Where type is FILETYPE_PEM or FILETYPE_ASN1 (for DER).
type_ = FILETYPE_PEM
 
prvkey = OpenSSL.crypto.dump_privatekey(type_, private_key)
cert = OpenSSL.crypto.dump_certificate(type_, certificate)

and a little later I use

                headers = {"username": "password"}
                context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
                context.load_cert_chain(cert, prvkey, password=password)
                context.verify_mode = ssl.CERT_REQUIRED
                context.check_hostname = True
                conn = httplib.HTTPSConnection(target_url, port=442, context=oontext)
                conn.request("POST", "/to/this/place", xml, headers)
                response = conn.getresponse()
                data = response.read()

I can 'see' the content of prvkey and cert with a raise NameError BUT this line

context.load_cert_chain(cert, prvkey, password=password)

throws an I/O error ErrNo36 file name too long and I have no idea why can anyone shed some light on this please?

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/d284d7f3-fd42-47ec-ad4b-6efe5d52d490%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.