import os from OpenSSL import crypto def create_self_signed_cert(certfile, keyfile, certargs, cert_dir="."): C_F = os.path.join(cert_dir, certfile) K_F = os.path.join(cert_dir, keyfile) if not os.path.exists(C_F) or not os.path.exists(K_F): k = crypto.PKey() k.generate_key(crypto.TYPE_RSA, 2048) cert = crypto.X509() cert.get_subject().C = certargs["Country"] cert.get_subject().ST = certargs["State"] cert.get_subject().L = certargs["City"] cert.get_subject().O = certargs["Organization"] cert.get_subject().OU = certargs["Org. Unit"] cert.get_subject().CN = 'Example' cert.set_serial_number(1000) cert.gmtime_adj_notBefore(0) cert.gmtime_adj_notAfter(315360000) cert.set_issuer(cert.get_subject()) cert.set_pubkey(k) cert.sign(k, 'sha1') open(C_F, "wb").write(crypto.dump_certificate(crypto.FILETYPE_PEM, cert)) open(K_F, "wb").write(crypto.dump_privatekey(crypto.FILETYPE_PEM, k))