无法将 CSR/Certificates 上传到 Open Banking Directory
Unable to upload CSR/Certificates to the Open Banking Directory
当我尝试将证书请求作为 OB 签名证书上传到 Open Banking Directory 时显示此错误。
当我复制消息时,我收到这条消息;
当我检查网络请求时,它似乎显示内部服务器错误(响应 500)和 returns graphql。这是回复:
{"errors":[{"message":"Error: Request failed with status code 400","locations":[{"line":2,"column":3}],"path":["addCertificate"]}],"data":null}
以前有人遇到过这个问题吗?我使用此命令使用我的凭据通过 Open SSL 生成了 CSR:
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
大括号中的标签已编辑。我也试过 docker 但没有收获。我会倾听我提出的任何解决方案。
感谢您的宝贵时间。
通过在 OpenSSL 上使用相应的配置文件生成 CSR 解决了这个问题。 eiDAS 格式化是必不可少的。
命令:
req -new -config "obseal.cnf" -out "Seal.csr" -keyout "SealPrivateKey.key"
req -new -config "obwac.cnf" -out "WAC.csr" -keyout "WACPrivateKey.key"
根据 BenTaylor 的上述问题,OBWAC 和 OBSEAL 以 QCStatements 的形式隐藏了 gem,将软件声明断言中指定的角色映射到 CSR 的结果证书中的角色已在其 qcStatement
OID 中指定。这是 OBSEAL 的 CNF 示例:
[ 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 解码器中,您将看到以下结构出现:
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 editor to edit/delete nodes and derive the binary as required for both OBWAC and OBSEAL. Just bang in the binary minus the qcStatement=DER:
part and be done with it. You can view the structure of the qcStatement using this web site。
另一个注意事项是,与 eIDAS QSeal 证书不同,OBSEAL 的最大密钥长度似乎是 2048
位。
希望有人会发现这很有用,因为英国银行开始丢弃旧的 Open Banking signing/transport 密钥并改为实施 eIDAS/OBWAC+SEAL。祝你好运,让乐趣开始吧。 o7
我目前在生产沙箱中遇到同样的问题,开放式银行没有显示任何相关错误。
使用 OpenSSL 版本:OpenSSL 1.1.1g 2020 年 4 月 21 日
然后在上传字段上弹出。
然后 pdf link 用于在上传字段上弹出的文档。
[ 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 支持它的工具如何定义它。所以当打印时:
openssl asn1parse -in obwac.csr -inform PEM
pdf 中的示例:
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 的新版本:
66:d=5 hl=2 l= 3 prim: OBJECT :organizationIdentifier
71:d=5 hl=2 l= 34 prim: UTF8STRING :OBGBR-GB-Unknown1315H25731lXE8ZIEM
当我尝试将证书请求作为 OB 签名证书上传到 Open Banking Directory 时显示此错误。
当我复制消息时,我收到这条消息;
当我检查网络请求时,它似乎显示内部服务器错误(响应 500)和 returns graphql。这是回复:
{"errors":[{"message":"Error: Request failed with status code 400","locations":[{"line":2,"column":3}],"path":["addCertificate"]}],"data":null}
以前有人遇到过这个问题吗?我使用此命令使用我的凭据通过 Open SSL 生成了 CSR:
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
大括号中的标签已编辑。我也试过 docker 但没有收获。我会倾听我提出的任何解决方案。
感谢您的宝贵时间。
通过在 OpenSSL 上使用相应的配置文件生成 CSR 解决了这个问题。 eiDAS 格式化是必不可少的。
命令:
req -new -config "obseal.cnf" -out "Seal.csr" -keyout "SealPrivateKey.key"
req -new -config "obwac.cnf" -out "WAC.csr" -keyout "WACPrivateKey.key"
根据 BenTaylor 的上述问题,OBWAC 和 OBSEAL 以 QCStatements 的形式隐藏了 gem,将软件声明断言中指定的角色映射到 CSR 的结果证书中的角色已在其 qcStatement
OID 中指定。这是 OBSEAL 的 CNF 示例:
[ 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 解码器中,您将看到以下结构出现:
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 editor to edit/delete nodes and derive the binary as required for both OBWAC and OBSEAL. Just bang in the binary minus the qcStatement=DER:
part and be done with it. You can view the structure of the qcStatement using this web site。
另一个注意事项是,与 eIDAS QSeal 证书不同,OBSEAL 的最大密钥长度似乎是 2048
位。
希望有人会发现这很有用,因为英国银行开始丢弃旧的 Open Banking signing/transport 密钥并改为实施 eIDAS/OBWAC+SEAL。祝你好运,让乐趣开始吧。 o7
我目前在生产沙箱中遇到同样的问题,开放式银行没有显示任何相关错误。
使用 OpenSSL 版本:OpenSSL 1.1.1g 2020 年 4 月 21 日 然后在上传字段上弹出。
然后 pdf link 用于在上传字段上弹出的文档。
[ 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 支持它的工具如何定义它。所以当打印时:
openssl asn1parse -in obwac.csr -inform PEM
pdf 中的示例:
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 的新版本:
66:d=5 hl=2 l= 3 prim: OBJECT :organizationIdentifier
71:d=5 hl=2 l= 34 prim: UTF8STRING :OBGBR-GB-Unknown1315H25731lXE8ZIEM