gpt4 book ai didi

django - 如何配置 Daphne 服务器以邀请客户添加颁发我的证书的证书颁发机构(如果他们尚未这样做)?

转载 作者:行者123 更新时间:2023-12-04 04:08:57 25 4
gpt4 key购买 nike

如果我在 Postman 或我们正在开发的 Android 应用程序中向我的 Daphne/Django 服务器发出请求,Daphne 会提供证书,但会被拒绝。如果我首先向 https://letsencrypt.org/ 发出简单的获取请求然后向我的服务器发出请求,证书被接受。

我如何确保客户信任我的证书,即使这是该客户第一次看到由该 CA 颁发的证书?

下面的所有内容都可以作为我研究问题的历史。

原标题:SSL证书在浏览器中有效,但无法通过Postman验证

我有一个运行 Ubuntu 18.04 的 AWS EC2 实例,带有 python 3、Django、一堆项目依赖项、运行 ASGI 的 Daphne,以及 Let's Encrypt 的证书。 Daphne 将端口 8000 用于 HTTP,将端口 4430 用于 HTTPS,iptables 配置为将请求从端口 80 重定向到 8000,将请求从端口 443 重定向到 4430。Django 配置为在 settings.py 文件中使用 SECURE_SSL_REDIRECT=True 强制执行安全连接。

有一个“ build 中的站点”临时页面正在提供服务,到目前为止我测试过的每个浏览器和每个设备都可以正确访问它。如果我明确键入 http,我将被重定向到 https 并且证书被接受。我测试的每个浏览器(Firefox、Brave、Chrome、Chrome for Android)都说证书很好。

Curl 输出从服务器返回的 HTML 内容。我不知道它是接受证书还是忽略它。

问题

然而, postman 说“错误:无法验证第一个证书”。仅当我禁用“SSL 证书验证”时才有效,这没有回答我的问题:为什么 Postman 无法验证我的 Let's Encrypt 证书?

我正在构建一个在同一台服务器上运行的 API,使用相同的域,并且它旨在由移动应用程序使用。目前,Android 应用程序正在抛出“TypeError:网络请求失败”,我怀疑这可能是由 Postman 提示的同一件事引起的。

当我在本地旋转服务器并配置 1) 要使用的应用程序时 http://localhost:8000 2) 服务器不强制执行 SSL,它可以在浏览器、Postman 和 Android 应用程序中运行。

几天来我一直在很多地方寻找答案,因此非常欢迎任何线索。

编辑

有趣的线索:

如果我向我的 Daphne/Django 服务器发出请求,它会提供证书,但会被拒绝。但如果我先向 https://letsencrypt.org/ 提出请求然后向我的服务器发出请求,就可以了!

这种模式适用于 Postman 和我们的 Android 应用。

当我第一次向 https://alloy.city 发出请求时也会发生这种情况(而不是 letsencrypt.org),由 Node.js 应用程序提供服务,并使用同样由 Let's Encrypt CA 颁发的证书。

所以也许问题应该是:如何配置我的服务器以礼貌地邀请客户端添加颁发我的证书的 CA(如果他们还没有添加)?

显然,这就是我的 Node.js 服务器所做的。

最佳答案

是的,在设置中,点击关闭 ssl 验证

文件 > 设置 > 常规 > SSL 证书验证 > 关闭

enter image description here

关于django - 如何配置 Daphne 服务器以邀请客户添加颁发我的证书的证书颁发机构(如果他们尚未这样做)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62070297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com