首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >web.py上的SSL证书链不完整

web.py上的SSL证书链不完整
EN

Stack Overflow用户
提问于 2017-05-04 05:03:33
回答 1查看 641关注 0票数 0

我想不出如何在web.py应用程序上正确设置SSL证书链.

在python代码中有:

代码语言:javascript
复制
CherryPyWSGIServer.ssl_certificate = "/path/mycert.pem"
CherryPyWSGIServer.ssl_certificate_chain = "/path/mychain.ca-bundle"
CherryPyWSGIServer.ssl_private_key = "/path/mykey.key"

当我访问Chrome的域名时,它说它是安全的。

然而,

  • 当我尝试从Rails应用程序发送webhooks时,它会响应: SSL_connect returned=1 errno=0 state=SSLv3读取服务器证书B:证书验证失败
  • 如果我试图在命令提示符下使用openssl连接,如下所示: openssl s_client -showcerts -connect mydomain.com:443 ..it只显示域的证书,而不显示链的其余部分,并且输出包含错误消息: 验证error:num=20:unable以获得本地颁发者证书,验证error:num=21:unable以验证第一个证书
  • 如果我通过Qualys SSL服务器测试运行域,尽管它通过了B级,但在证书下面是这样的: 链问题不完整 证书路径下的...and中间层标记为“额外下载”,而不是“服务器发送”。

我尝试过一些文件内容和文件扩展名的不同组合。

我试过把:

  • 只有中级证书;
  • 中间体和根证书;
  • 域、中间物和根

...into certificate_chain文件。我还尝试将整个链包含在证书文件中。我试过扩展.crt,.pem,.perm,..ca包

是否有人对正确的文件格式、包含方法、文件扩展名或我可能需要的其他配置选项有任何建议?谢谢!

P.S.Python版本为2.7.12,pip冻结显示了已安装的以下软件包:

代码语言:javascript
复制
cffi==1.8.3
cryptography==1.5.2
enum34==1.1.6
idna==2.1
ipaddress==1.0.17
pyasn1==0.1.9
pycparser==2.16
pyOpenSSL==16.2.0
requests==2.11.1
six==1.10.0
web.py==0.38
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-04 14:54:39

web.py v0.38不使用开箱即用的证书链。这意味着它忽略了您的CherryPyWSGIServer.ssl_certificate_chain编辑,因为它没有通过。

幸运的是,每一个https://github.com/movb/webpy/commit/9f9f6838e49f17cf395282392c3fc2762a97460b都有一个简单的补丁

编辑web/httpserver.py,如果定义的话,要通过ssl_certificate_chain。那么你的代码就能工作了。

代码语言:javascript
复制
== web/httpserver.py ==
- def create_ssl_adapter(cert, key):
+ def create_ssl_adapter(cert, key, chain=None):

- adapter = pyOpenSSLAdapter(cert, key)
+ adapter = pyOpenSSLAdapter(cert, key, chain)

- server.ssl_adapter = crate_ssl_adapter(server.ssl_certificate, server.ssl_private_key)
+ server.ssl_adapter = create_ssl_adapter(server.ssl_certificate, server.ssl_private_key,
+                                         getattr(server, 'ssl_certificate_chain', None))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43774255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档