Thursday, April 27, 2017

p12 certs to pem etc

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 django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
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.

No comments:

Post a Comment