【问题标题】:pyopenssl, twisted with let's encrypt: server's certificate chain is incompletepyopenssl,扭曲了让我们加密:服务器的证书链不完整
【发布时间】:2016-12-10 12:17:32
【问题描述】:

我想在我的扭曲服务器上使用 let's encrypt,但在最新的 Android 版 Chrome 上,我收到:

the identity of this website has not been verified

最新的 Firefox for Ubuntu 上的类似消息。

来自 ssllabs.com 的我的 SSL 报告:

此服务器的证书链不完整。等级上限为 B。

我的相关代码:

from OpenSSL import crypto

from twisted.internet import ssl

privkey=open('/etc/letsencrypt/live/mindolia.com/privkey.pem', 'rt').read()
certif=open('/etc/letsencrypt/live/mindolia.com/fullchain.pem', 'rt').read()

privkeypyssl=crypto.load_privatekey(crypto.FILETYPE_PEM,privkey)
certifpyssl=crypto.load_certificate(crypto.FILETYPE_PEM,certif)

contextFactory=ssl.CertificateOptions(privateKey=privkeypyssl, certificate=certifpyssl)

【问题讨论】:

    标签: python ssl lets-encrypt pyopenssl twisted.web


    【解决方案1】:

    solution here

    from OpenSSL import crypto
    
    from twisted.internet import ssl
    
    privkey=open('/etc/letsencrypt/live/mindolia.com/privkey.pem', 'rt').read()
    certif=open('/etc/letsencrypt/live/mindolia.com/cert.pem', 'rt').read()
    chain=open('/etc/letsencrypt/live/mindolia.com/chain.pem', 'rt').read()
    
    privkeypyssl=crypto.load_privatekey(crypto.FILETYPE_PEM,privkey)
    certifpyssl=crypto.load_certificate(crypto.FILETYPE_PEM,certif)
    chainpyssl=[crypto.load_certificate(crypto.FILETYPE_PEM,chain)]
    contextFactory=ssl.CertificateOptions(privateKey=privkeypyssl,certificate=certifpyssl,extraCertChain=chainpyssl)
    

    【讨论】:

      【解决方案2】:

      创建包含链证书的CertificateOptions 的最简单方法是使用pem 库,如下所示:

      from pem.twisted import certificateOptionsFromFiles
      
      contextFactory = certificateOptionsFromFiles(
          '/etc/letsencrypt/live/mindolia.com/privkey.pem',
          '/etc/letsencrypt/live/mindolia.com/fullchain.pem')
      

      另外,为了让 Let's Encrypt 与 Twisted 直接集成,您可以使用 txacme,前提是您的 Twisted 应用程序在端口 443 上运行(或将端口 443 转发给它)。

      【讨论】:

        猜你喜欢
        • 2018-04-27
        • 1970-01-01
        • 2016-06-17
        • 1970-01-01
        • 2018-06-19
        • 2017-10-22
        • 1970-01-01
        • 1970-01-01
        • 2020-07-20
        相关资源
        最近更新 更多