首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将CSR/证书上载到开放银行目录

无法将CSR/证书上载到开放银行目录
EN

Stack Overflow用户
提问于 2019-07-05 15:58:11
回答 3查看 979关注 0票数 3

当我试图将证书请求作为OB签名证书上载到开放银行目录时,出现了此错误。

当我复制信息时,我会收到这样的信息;

当我检查网络请求时,它似乎显示了一个内部服务器错误(响应500)并返回graphql。以下是我们的回应:

代码语言:javascript
复制
{"errors":[{"message":"Error: Request failed with status code 400","locations":[{"line":2,"column":3}],"path":["addCertificate"]}],"data":null}

这个问题以前有没有人发生过?我使用以下命令使用我的凭据使用Open生成CSR:

代码语言:javascript
复制
openssl req -new -newkey rsa:2048 -nodes -out [STATEMENT_CLIENT_ID].csr -keyout [STATEMENT_CLIENT_ID].key -subj "/C=GB/ST=/L=/O=OpenBanking/OU=[ORGANISATION_ID]/CN=[STATEMENT_CLIENT_ID]" -sha256

大括号中的标签被修改。我也试过码头,但没有收获。任何解决办法我都会留心。

谢谢您抽时间见我。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-07-08 13:51:53

通过使用相应的配置文件在OpenSSL上生成CSR来解决这个问题。eiDAS格式是必不可少的。

命令:

代码语言:javascript
复制
req -new -config "obseal.cnf" -out "Seal.csr" -keyout "SealPrivateKey.key"

req -new -config "obwac.cnf" -out "WAC.csr" -keyout "WACPrivateKey.key"
票数 3
EN

Stack Overflow用户

发布于 2020-08-25 13:00:35

根据BenTaylor上面的问题,OBWAC和OBSEAL的组成中有一个隐藏的宝石,其形式是QCStatements,它将软件语句断言中指定的角色映射到来自CSR的结果证书在其qcStatement OID中指定的角色。下面是OBSEAL的CNF示例:

代码语言:javascript
复制
[ req ]
default_bits            = 2048
encrypt_key             = no
default_md              = sha256
default_keyfile         = obseal.key
utf8                    = yes
string_mask             = utf8only
prompt                  = no
distinguished_name      = client_dn
req_extensions          = client_reqext

[ client_dn ]
countryName             = "GB"
organizationName        = "Typical O name"

# Subject common name
commonName              = "<Open Banking Directory Org ID>"

[ client_reqext ]
keyUsage                = critical,digitalSignature,nonRepudiation

subjectKeyIdentifier    = hash

qcStatements=DER:30713013060604008e4601063009060704008e46010602305a06060400819827023050303930110607040081982701020c065053505f504930110607040081982701030c065053505f414930110607040081982701040c065053505f49430c0c4f70656e2042616e6b696e670c0547422d4f42

如果将上述二进制代码粘贴到ASN1解码器中,您将看到以下结构:

代码语言:javascript
复制
SEQUENCE (2 elem)
  SEQUENCE (2 elem)
    OBJECT IDENTIFIER 0.4.0.1862.1.6
    SEQUENCE (1 elem)
      OBJECT IDENTIFIER 0.4.0.1862.1.6.2
  SEQUENCE (2 elem)
    OBJECT IDENTIFIER 0.4.0.19495.2
    SEQUENCE (3 elem)
      SEQUENCE (3 elem)
        SEQUENCE (2 elem)
          OBJECT IDENTIFIER 0.4.0.19495.1.2
          UTF8String PSP_PI
        SEQUENCE (2 elem)
          OBJECT IDENTIFIER 0.4.0.19495.1.3
          UTF8String PSP_AI
        SEQUENCE (2 elem)
          OBJECT IDENTIFIER 0.4.0.19495.1.4
          UTF8String PSP_IC
      UTF8String Open Banking
      UTF8String GB-OB

节点PSP_*以如下方式将OBWAC/OBSEAL证书映射到软件语句角色:

  • PSP_PI = PISP
  • PSP_AI = AISP
  • PSP_IC = CBPII

您可以使用ASN1编辑器编辑/删除节点,并根据OBWAC和OBSEAL的需要派生二进制文件。只需插入二进制值减去qcStatement=DER:部分,并完成它。您也可以查看qcStatement 使用此网站的结构。

另一个注意事项是,与eIDAS QSeal证书不同,OBSEAL的最大密钥长度似乎是2048位。

希望有人会发现这是有用的,因为英国银行开始放弃旧的开放银行签名/传输密钥,转而实现eIDAS/OBWAC+SEAL。祝你好运,让乐趣开始吧。o7

票数 2
EN

Stack Overflow用户

发布于 2021-03-29 09:12:37

我目前在生产沙箱上也有同样的问题,而开放式银行并没有显示出任何相关的错误。

使用OpenSSL版本: OpenSSL 1.1.1g,2020年4月21日,然后在上传字段中弹出。

在这个pdf链接之后,在upload字段中弹出文档。

代码语言:javascript
复制
[ req ] 
default_bits = 2048 
encrypt_key = yes 
default_md = sha256 
utf8 = yes 
string_mask = utf8only 
prompt = no 
distinguished_name = client_dn 
req_extensions = client_reqext 

[ client_dn ] 
countryName = "GB" 
organizationName = "My bank Ltd" 
organizationIdentifier = "OBGBR-GB-Unknown1315H25731lXE8ZIEM" 
commonName = "Unknown1315H25731lXE8ZIEM" 

[ client_reqext ] 
keyUsage = critical,digitalSignature,nonRepudiation 
subjectKeyIdentifier = hash 

qcStatements=DER:3081813013060604008e4601063009060704008e46010603306a06060400819827023060303930110607040081982701010c065053505f415330110607040081982701020c065053505f504930110607040081982701030c065053505f41490c1b46696e616e6369616c20436f6e6475637420417574686f726974790c0647422d464341

我能看到的不同之处在于organizationIdentifier的定义。在文档中,如果使用不支持它的工具,但是当前版本的OpenSSl确实支持它,那么它们将如何定义它。因此,当印刷时:

代码语言:javascript
复制
openssl asn1parse -in obwac.csr -inform PEM

pdf中的例子:

代码语言:javascript
复制
66:d=5 hl=2 l= 3 prim: OBJECT :2.5.4.97 
71:d=5 hl=2 l= 34 prim: UTF8STRING :PSDGB-OB-Unknown1315H25731lXE8ZIEM

新版OpenSSL:

代码语言:javascript
复制
   66:d=5  hl=2 l=   3 prim: OBJECT            :organizationIdentifier
   71:d=5  hl=2 l=  34 prim: UTF8STRING        :OBGBR-GB-Unknown1315H25731lXE8ZIEM
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56906200

复制
相关文章

相似问题

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