blob: df904c1a2104693f0db6f5954c0775b69b2bb5fd [file] [log] [blame]
import logging
import ssl
logger = logging.getLogger("osm_ee.util_grpc")
SERVER_CERT = "/etc/ssl/grpc-tls/tls.crt"
SERVER_KEY = "/etc/ssl/grpc-tls/tls.key"
def create_secure_context() -> ssl.SSLContext:
ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
# ctx.verify_mode = ssl.CERT_REQUIRED
try:
ctx.load_cert_chain(str(SERVER_CERT), str(SERVER_KEY))
except FileNotFoundError:
logger.warning("TLS Certificate not found, starting gRPC server in unsecure mode")
return None
# TODO: client TLS
# ctx.load_verify_locations(str(trusted))
ctx.set_ciphers('ECDHE+AESGCM:ECDHE+CHACHA20:DHE+AESGCM:DHE+CHACHA20')
ctx.set_alpn_protocols(['h2'])
try:
ctx.set_npn_protocols(['h2'])
except NotImplementedError:
pass
return ctx