PyOpenSSL
PyOpenSSL is a Python wrapper around the OpenSSL library, providing a high-level interface for cryptographic operations. The current version is 26.0.0, with releases following a regular cadence to incorporate updates and fixes.
Warnings
- breaking PyOpenSSL version 23.0.0 is incompatible with cryptography version 39.0.0 due to the removal of the 'x509' module.
- deprecated The 'load_pkcs12' function in PyOpenSSL is deprecated and may be removed in future versions.
Install
-
pip install pyopenssl
Imports
- OpenSSL.crypto
from OpenSSL import crypto
Quickstart
from OpenSSL import crypto
# Generate a new RSA key pair
key = crypto.PKey()
key.generate_key(crypto.TYPE_RSA, 2048)
# Create a self-signed certificate
cert = crypto.X509()
cert.set_version(2)
cert.set_serial_number(1000)
cert.get_subject().CN = 'example.com'
cert.set_issuer(cert.get_subject())
cert.set_pubkey(key)
cert.sign(key, 'sha256')
# Save the private key and certificate to files
with open('private_key.pem', 'wb') as key_file:
key_file.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, key))
with open('certificate.pem', 'wb') as cert_file:
cert_file.write(crypto.dump_certificate(crypto.FILETYPE_PEM, cert))
print('Private key and certificate have been generated and saved.')