【问题标题】:How to resolve 'Invalid PKCS8 header error' in AWS lambda如何解决 AWS lambda 中的“无效 PKCS8 标头错误”
【发布时间】:2019-12-25 01:46:56
【问题描述】:

我正在尝试使用我从 DynamoDB 检索的私钥对一条小请求消息执行 jwt.encode。我的工作站是 Mac OS。

该代码在我的本地环境中运行,但在我尝试在 AWS lambda python3.7 环境中执行时失败。有关如何解决此问题的任何建议?

{
  "errorMessage": "Invalid PKCS8 header",
  "errorType": "JWSError",
  "stackTrace": [
    "  File \"/var/task/lambda_function.py\", line 228, in lambda_handler\n    response = send_request(url, body=body)\n",
    "  File \"/var/task/lambda_function.py\", line 67, in send_request\n    token = _gen_jwt(private_key)\n",
    "  File \"/var/task/lambda_function.py\", line 52, in _gen_jwt\n    token = jwt.encode(payload, private_key, algorithm='RS256', headers=headers)\n",
    "  File \"/var/task/jose/jwt.py\", line 61, in encode\n    return jws.sign(claims, key, headers=headers, algorithm=algorithm)\n",
    "  File \"/var/task/jose/jws.py\", line 47, in sign\n    signed_output = _sign_header_and_claims(encoded_header, encoded_payload, algorithm, key)\n",
    "  File \"/var/task/jose/jws.py\", line 168, in _sign_header_and_claims\n    raise JWSError(e)\n"
  ]
}

【问题讨论】:

    标签: python-3.x aws-lambda jwt pycrypto python-jose


    【解决方案1】:

    在我在 Linux 环境中重建我的 lambda 包并重新部署到 AWS Lambda 后,此问题得到解决。

    我从 python3.7.4 创建了一个 docker 映像,并将包从容器内部署到 lambda。

    这个解决方案也解决了这个问题:

    ImportError: /var/task/cryptography/hazmat/bindings/_constant_time.so: invalid ELF header
    

    根据https://github.com/pyca/cryptography/issues/3051

    【讨论】:

      猜你喜欢
      • 2013-07-22
      • 1970-01-01
      • 1970-01-01
      • 2021-05-12
      • 1970-01-01
      • 1970-01-01
      • 2019-10-20
      • 1970-01-01
      • 2022-11-11
      相关资源
      最近更新 更多