in deployment/sagemaker-dashboards-for-ml/cloudformation/deployment/self-signed-certificate/src/create.py [0:0]
def generate_self_signed_certificate(key):
subject = issuer = x509.Name([
x509.NameAttribute(NameOID.COUNTRY_NAME, u"US"),
x509.NameAttribute(NameOID.STATE_OR_PROVINCE_NAME, u"California"),
x509.NameAttribute(NameOID.LOCALITY_NAME, u"San Francisco"),
x509.NameAttribute(NameOID.ORGANIZATION_NAME, u"My Company"),
x509.NameAttribute(NameOID.COMMON_NAME, u"example.com")
])
cert = x509.CertificateBuilder()
cert = cert.subject_name(subject)
cert = cert.issuer_name(issuer)
cert = cert.public_key(key.public_key())
cert = cert.serial_number(x509.random_serial_number())
cert = cert.not_valid_before(datetime.utcnow())
cert = cert.not_valid_after(datetime.utcnow() + timedelta(days=365))
cert = cert.add_extension(
x509.SubjectAlternativeName([x509.DNSName(u"localhost")]),
critical=False,
)
cert = cert.sign(key, hashes.SHA256(), default_backend())
return cert