Asana:Webhook 创建中的 SSL

Asana: SSL in webhook creation

我正在尝试创建 Asana webhook,但我不断收到的错误是:asana.error.InvalidRequestError: Invalid Request: Could not complete activation handshake with target URL. Please ensure that the receiving server is accepting connections and supports SSL

服务(gunicorn 服务器)在 Docker 容器中 运行 映射到端口 8004,因此 webhook 的 url 看起来像 https://example.com:8004/path/to/webhook。我已经为整个域设置了 Let's Encrypt SSL。

奇怪的是,当我从 Postman 或 Python 访问 webhook 的 url 时,一切正常,因此我不确定如何重现 Asana 的握手请求。

另一方面,当我使用 ngrok 在本地测试 webhook 时一切正常。

Asana 是否可以接受 Let's Encrypt 证书?

与 Let's encrypt SSL 无关。

似乎 Asana 的握手请求正在访问主域的 SSL 端口 (443),尽管在 webhook 的 url 中指定了端口。

解决方案是在 docker 容器内的 gunicorn 中设置 nginx 代理通道并关闭 SSL。

类似于:

  location /service-api {
    proxy_pass http://0.0.0.0:8004;
  }

这种方式 nginx 处理 SSL 并将已解密的请求传递给服务 - Asana 对端口很满意