Exemplo n.º 1
0
def create_https_certificates(ssl_cert, ssl_key):
    """ Create self-signed HTTPS certificates and store in paths 'ssl_cert' and 'ssl_key' """
    try:
        from sabnzbd.utils.certgen import generate_key, generate_local_cert

        private_key = generate_key(key_size=2048, output_file=ssl_key)
        generate_local_cert(private_key, days_valid=3560, output_file=ssl_cert, LN="SABnzbd", ON="SABnzbd")
        logging.info("Self-signed certificates generated successfully")
    except:
        logging.error(T("Error creating SSL key and certificate"))
        logging.info("Traceback: ", exc_info=True)
        return False

    return True
Exemplo n.º 2
0
def create_https_certificates(ssl_cert, ssl_key):
    """ Create self-signed HTTPS certificates and store in paths 'ssl_cert' and 'ssl_key' """
    if not sabnzbd.HAVE_CRYPTOGRAPHY:
        logging.error(T('%s missing'), 'Python Cryptography')
        return False

    # Save the key and certificate to disk
    try:
        from sabnzbd.utils.certgen import generate_key, generate_local_cert
        private_key = generate_key(key_size=2048, output_file=ssl_key)
        cert = generate_local_cert(private_key, days_valid=356*10, output_file=ssl_cert, LN=u'SABnzbd', ON=u'SABnzbd', CN=u'SABnzbd')
        logging.info('Self-signed certificates generated successfully')
    except:
        logging.error(T('Error creating SSL key and certificate'))
        logging.info("Traceback: ", exc_info=True)
        return False

    return True
Exemplo n.º 3
0
    def test_generate_local_cert(self):
        # Generate private key
        private_key = generate_key(
            output_file=os.path.join(SAB_CACHE_DIR, "test_key.pem"))

        # Generate local certificate using private key
        output_file = os.path.join(SAB_CACHE_DIR, "test_cert.cert")
        local_cert = generate_local_cert(private_key, output_file=output_file)
        assert local_cert

        # Validating generated key file
        public_key = local_cert.public_key()
        assert isinstance(public_key, rsa.RSAPublicKey)

        # Validate certificate file
        with open(output_file, "rb") as cert_file:
            cert_content = cert_file.read()
            cert = x509.load_pem_x509_certificate(cert_content,
                                                  default_backend())

            # Validate that the timestamp at which the certificate stops being valid (expiration date) is in future
            assert datetime.datetime.now() < cert.not_valid_after