【问题标题】:Can't create IOS_DISTRIBUTION certificate using AppStore Connect API. Error 409/ENTITY_ERROR.ATTRIBUTE.INVALID/Invalid Certificate无法使用 AppStore Connect API 创建 IOS_DISTRIBUTION 证书。错误 409/ENTITY_ERROR.ATTRIBUTE.INVALID/无效证书
【发布时间】:2020-04-28 00:54:55
【问题描述】:

我正在尝试创建证书using AppStore Connect API。为此,我创建了有效的(我使用它通过 GET 方法获取证书列表,它有效) JWT 令牌:eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsImtpZCI6IkZZREszQlVIOE0ifQ.eyJpc3MiOiIwNWNiN2M3Yy00Y2RkLTRlYjMtYWRiZC1kNzkwYWEyYTBhNjEiLCJleHAiOjE1ODc3OTg1MjMuMjI3ODIyLCJhdWQiOiJhcHBzdG9yZWNvbm5lY3QtdjEifQ.Vs1xpLL2xF_WtQNXg3m1XySG-mdSsR2fQalhDgFy5NkIhtRWtWfxkyxMOTe3la-zqWAKjZ7iiCGf8Fkm5_cl2Q

漂亮打印的 JSON Http 正文是:

{
  "data":{
    "attributes":{
      "certificateType":"IOS_DISTRIBUTION",
      "csrContent":"'$(cat private.csr | base64)'"
    },
    "type":"certificates"
  }
} 

其中private.csr文件由Keychain Access生成并包含:

-----BEGIN CERTIFICATE REQUEST-----
MIIClDCCAXwCAQAwTzEnMCUGCSqGSIb3DQEJARYYaWdvci5rb3Rrb3ZldHNAZHVt
bXkuY29tMRcwFQYDVQQDDA5JZ29yIEtvdGtvdmV0czELMAkGA1UEBhMCQlkwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDnON+o9OZCRAF0oJqnjt7RBDJj
ZDJjj04iH/UvqEaJ/T8iq7iWZFQBpnLD11vcProtA+v4rNI/H5N4R+BPJclmvbPE
BGOSvyQHXf92blCzL9e9Lqk6GVTvdh+7YDlJV+dTqceP0evQleybWn7bp/lnRKtb
o5NWOfDKv5dgUXEFi5e0Hy9FMem5AlKGN7NObSypi7mBqscpRpg70ZLrODZxg8Ee
E/R8ZHWesuIvMBp+m4J6O2+gMRTOVb+jA+577StbkZM4lxDhYB1XEy3nmXkCJXqi
C/mgxmfNnCBK4s9OYJnEVu703aPYm9c9qI4eHdQzyEE0WqRits2CDckWGIBFAgMB
AAGgADANBgkqhkiG9w0BAQsFAAOCAQEAtLXvHejf2zPlMhJeWU6BBnsc2z2P6ZWS
92GZCMpTLX/apN8IjzxZWG+x5hW4ub6YL3SWTgz7l4OJzyIzV4t5xupcRwGessOt
XvBvDEshd9k7LkueNtoXO6buJEKa5sDEZ+31BxUKGgqRXBTxsVxvTJSQTF1quutN
j8AQzWBRRp1HkTRS89iBS1G7eY9NR1Abvp2Omr8RRdvqsOm5i1aJ7HvOc4SxlnyL
PZFGYQFKCX1wT6la8RYPbq96hAAwAKDvCf2pqT9iYwJOOPRHvpLuA8N9TlQGjEtJ
O+QUtQJ4PFTRTGhHxNEDXdGRH2JMSQD1ral4PiYy/YCfNZiyrtMDgg==
-----END CERTIFICATE REQUEST-----

接下来我执行curl请求:

curl -v -X POST  -H 'Content-Type: application/json' -H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsImtpZCI6IkZZREszQlVIOE0ifQ.eyJpc3MiOiIwNWNiN2M3Yy00Y2RkLTRlYjMtYWRiZC1kNzkwYWEyYTBhNjEiLCJleHAiOjE1ODc3OTg1MjMuMjI3ODIyLCJhdWQiOiJhcHBzdG9yZWNvbm5lY3QtdjEifQ.Vs1xpLL2xF_WtQNXg3m1XySG-mdSsR2fQalhDgFy5NkIhtRWtWfxkyxMOTe3la-zqWAKjZ7iiCGf8Fkm5_cl2Q' -d '{"data":{"attributes":{"certificateType":"IOS_DISTRIBUTION","csrContent":"'$(cat private.csr | base64)'"},"type":"certificates"}}' https://api.appstoreconnect.apple.com/v1/certificates

但是服务器响应错误:

< HTTP/1.1 100 Continue
* We are completely uploaded and fine
< HTTP/1.1 409 Conflict
< Server: daiquiri/3.0.0
< Date: Sat, 25 Apr 2020 07:20:08 GMT
< Content-Type: */*
< Content-Length: 254
< Connection: keep-alive
< Cache-Control: no-store, no-cache, must-revalidate
< Pragma: no-cache
< X-XSS-Protection: 1; mode=block
< X-Frame-Options: ALLOW-FROM https://devcms.apple.com SAMEORIGIN
< Strict-Transport-Security: max-age=31536000; includeSubDomains
< X-Request-ID: QRCVNTSDFD6UA4O62U7ZZM67ZM
< X-Rate-Limit: user-hour-lim:3600;user-hour-rem:3598;
< x-daiquiri-instance: daiquiri:38493002:pv50p00it-hyhk10063901:7987:20E24
< 
{
  "errors" : [ {
    "id" : "7470a152-5d89-4d85-8e6e-987754c519c3",
    "status" : "409",
    "code" : "ENTITY_ERROR.ATTRIBUTE.INVALID",
    "title" : "An attribute in the provided entity has invalid value",
    "detail" : "Invalid Certificate"
  } ]
* Connection #0 to host api.appstoreconnect.apple.com left intact

我已经不知道出了什么问题。我检查了我的帐户中的 iOS 分发证书没有限制。

【问题讨论】:

  • 据我所知有分发证书限制4
  • @BatuhanAkkaya 不,帐户中只有 1 个分发证书,我可以创建更多。无论如何,我删除了现有的证书,问题并没有消失
  • 在 [Apple 开发者论坛] (forums.developer.apple.com/message/416711#416711) 提出了这个问题
  • 我昨天尝试时它正在工作。而且我在您的代码中看不到任何问题,但我正在使用 nodejs。
  • 确保 csrContent 正确。我也用过这个:thesslstore.com/knowledgebase/ssl-generate/…

标签: ios app-store-connect


【解决方案1】:

几天后,我发现了问题。那是我base64编码的CSR文件。不用做,这个文件中间已经包含了BASE64数据

-----BEGIN CERTIFICATE REQUEST-----
...
BASE64 ENCODED DATA 
...
-----END CERTIFICATE REQUEST-----

所以正确的身体是

{
  "data":{
    "attributes":{
      "certificateType":"IOS_DISTRIBUTION",
      "csrContent":"'$(cat private.csr)'"
    },
    "type":"certificates"
  }
} 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-19
    • 2013-01-07
    • 1970-01-01
    • 2016-12-12
    • 2021-09-27
    相关资源
    最近更新 更多