Coverage for mindsdb / utilities / wizards.py: 12%
16 statements
« prev ^ index » next coverage.py v7.13.1, created at 2026-01-21 00:36 +0000
« prev ^ index » next coverage.py v7.13.1, created at 2026-01-21 00:36 +0000
1from datetime import datetime, timedelta
4def make_ssl_cert(file_path):
5 from cryptography import x509
6 from cryptography.x509.oid import NameOID
7 from cryptography.hazmat.backends import default_backend
8 from cryptography.hazmat.primitives import hashes
9 from cryptography.hazmat.primitives import serialization
10 from cryptography.hazmat.primitives.asymmetric import rsa
12 key = rsa.generate_private_key(
13 public_exponent=65537,
14 key_size=2048,
15 backend=default_backend(),
16 )
18 name = x509.Name([
19 x509.NameAttribute(NameOID.COMMON_NAME, 'mdb_autogen'),
20 x509.NameAttribute(NameOID.COUNTRY_NAME, 'US'),
21 x509.NameAttribute(NameOID.STATE_OR_PROVINCE_NAME, 'California'),
22 x509.NameAttribute(NameOID.LOCALITY_NAME, 'Berkeley'),
23 x509.NameAttribute(NameOID.ORGANIZATION_NAME, 'MindsDB')
24 ])
26 now = datetime.utcnow()
27 cert = (
28 x509.CertificateBuilder()
29 .subject_name(name)
30 .issuer_name(name)
31 .public_key(key.public_key())
32 .serial_number(1)
33 .not_valid_before(now - timedelta(days=10 * 365))
34 .not_valid_after(now + timedelta(days=10 * 365))
35 .add_extension(
36 x509.BasicConstraints(ca=True, path_length=0),
37 False
38 )
39 .sign(key, hashes.SHA256(), default_backend())
40 )
41 cert_pem = cert.public_bytes(encoding=serialization.Encoding.PEM)
42 key_pem = key.private_bytes(
43 encoding=serialization.Encoding.PEM,
44 format=serialization.PrivateFormat.TraditionalOpenSSL,
45 encryption_algorithm=serialization.NoEncryption(),
46 )
48 with open(file_path, 'wb') as f:
49 f.write(key_pem + cert_pem)