There is work underway for addressing this particular use-case (endpoint composition) via string endpoints:
But even today you don't have to touch unsupported private APIs to do this.
(Plus, you should really be using CertificateOptions, not DefaultOpenSSLContextFactory, either via PrivateCertificate(...).options() or directly constructed.)
from twisted.python.filepath import FilePath
site = server.Site(MyHttpsSite())
cert = FilePath('/path/to/my/cert').getContent()
key = FilePath('/path/to/my/key').getContent()
from twisted.internet.ssl import PrivateCertificate
certificateWithKey = PrivateCertificate.loadPEM(b"\n".join([cert, key]))
tlsFactory = tls.TLSMemoryBIOFactory(certificateWithKey.options(), False, site)
import socket
from twisted.internet import reactor
reactor.adoptStreamPort(listen_socket_fd, socket.AF_INET, tlsFactory)
import os
os.close(listen_socket_fd)
reactor.run()