et je n’ai pas l’impression, à voir la documentation de Twisted, que cette fonction loadPEM prenne en compte les éventuels certificats intermédiaires contenu dans le fichier.
Une possibilité semble être de passer par un ContextFactory personnalisé :
from twisted.internet.ssl import DefaultOpenSSLContextFactory
from OpenSSL import SSL
class CustomSSLContextFactory(DefaultOpenSSLContextFactory):
def __init__(self, private_key_file, chain_file):
self._context = SSL.Context(SSL.TLSv1_METHOD)
self._context.use_certificate_chain_file(chain_file)
self._context.use_privatekey_file(private_key_file)
et de l’utiliser à la place de cert.options() dans l’appel à listenSSL :
Du moins, c’est le principe. Je n’ai pas d’installation fonctionnelle de SàT/Libervia pour tester, sinon j’aurais envoyé un patch en bonne et due forme.
[^] # Re: let's encrypt !
Posté par gouttegd . En réponse à la dépêche Libervia/Salut à Toi 0.6.0 : nouvelle vague. Évalué à 3.
Je ne suis pas familier de Twisted, mais ça ressemble plus à un problème de code qu’à une simple question d’arguments.
Le code qui charge le certificat est la ligne suivante (fichier
src/server/server.py) :et je n’ai pas l’impression, à voir la documentation de Twisted, que cette fonction
loadPEMprenne en compte les éventuels certificats intermédiaires contenu dans le fichier.Une possibilité semble être de passer par un
ContextFactorypersonnalisé :et de l’utiliser à la place de
cert.options()dans l’appel àlistenSSL:Du moins, c’est le principe. Je n’ai pas d’installation fonctionnelle de SàT/Libervia pour tester, sinon j’aurais envoyé un patch en bonne et due forme.