From ffc9db17e3f8b0ce1f5774b681c1f3476db67658 Mon Sep 17 00:00:00 2001 From: an3k Date: Sat, 13 Feb 2016 21:08:51 +0100 Subject: [PATCH] Update helpers.py --- plexpy/helpers.py | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/plexpy/helpers.py b/plexpy/helpers.py index 3722d902..08d516f0 100644 --- a/plexpy/helpers.py +++ b/plexpy/helpers.py @@ -348,24 +348,28 @@ def create_https_certificates(ssl_cert, ssl_key): """ from plexpy import logger - from OpenSSL import crypto - from certgen import createKeyPair, createCertRequest, createCertificate, \ - TYPE_RSA, serial + import time - # Create the CA Certificate - cakey = createKeyPair(TYPE_RSA, 2048) - careq = createCertRequest(cakey, CN="Certificate Authority") - cacert = createCertificate(careq, (careq, cakey), serial, (0, 60 * 60 * 24 * 365 * 10)) # ten years - - pkey = createKeyPair(TYPE_RSA, 2048) - req = createCertRequest(pkey, CN="PlexPy") - cert = createCertificate(req, (cacert, cakey), serial, (0, 60 * 60 * 24 * 365 * 10)) # ten years + # Create self-signed Certificate + key = crypto.PKey() + key.generate_key(crypto.TYPE_RSA, 2048) + + cert = crypto.X509() + cert.set_version(2) + cert.set_serial_number(int(time.time())) + cert.get_subject().CN = "PlexPy" + cert.gmtime_adj_notBefore(0) + cert.gmtime_adj_notAfter(60 * 60 * 24 * 365 * 10) + cert.set_issuer(cert.get_subject()) + cert.set_pubkey(key) + cert.add_extensions([crypto.X509Extension("subjectAltName", False, "DNS:plex.myserver.com,IP:10.11.12.13")]) + cert.sign(key, "sha256") # Save the key and certificate to disk try: with open(ssl_key, "w") as fp: - fp.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, pkey)) + fp.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, key)) with open(ssl_cert, "w") as fp: fp.write(crypto.dump_certificate(crypto.FILETYPE_PEM, cert)) except IOError as e: @@ -455,4 +459,4 @@ def sanitize(string): if string: return unicode(string).replace('<','<').replace('>','>') else: - return '' \ No newline at end of file + return ''