blob: df904c1a2104693f0db6f5954c0775b69b2bb5fd [file] [log] [blame]
Gabriel Cuba8b7a3952022-11-02 17:21:50 -05001import logging
2import ssl
3
4logger = logging.getLogger("osm_ee.util_grpc")
5
6SERVER_CERT = "/etc/ssl/grpc-tls/tls.crt"
7SERVER_KEY = "/etc/ssl/grpc-tls/tls.key"
8
9
10def create_secure_context() -> ssl.SSLContext:
11 ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
12 # ctx.verify_mode = ssl.CERT_REQUIRED
13 try:
14 ctx.load_cert_chain(str(SERVER_CERT), str(SERVER_KEY))
15 except FileNotFoundError:
16 logger.warning("TLS Certificate not found, starting gRPC server in unsecure mode")
17 return None
18 # TODO: client TLS
19 # ctx.load_verify_locations(str(trusted))
20 ctx.set_ciphers('ECDHE+AESGCM:ECDHE+CHACHA20:DHE+AESGCM:DHE+CHACHA20')
21 ctx.set_alpn_protocols(['h2'])
22 try:
23 ctx.set_npn_protocols(['h2'])
24 except NotImplementedError:
25 pass
26 return ctx