首页 > 解决方案 > 在 DocuSign API 返回重定向 URI 时收到证书错误消息

问题描述

我正在尝试使用 Oracle Application Express 测试 DocuSign eSignature API。我收到一个 Oracle 错误:ORA-29273:HTTP 请求失败 ORA-06512:在“SYS.UTL_HTTP”,第 1130 行 ORA-29024:证书验证失败

我让 Oracle DBA 基于开发人员环境端点将 3 个 DocuSign 证书安装到 Oracle Wallet,以根据我从以下 DocuSign 网页中找到的 T 进行身份验证和 REST API:

https://developers.docusign.com/docs/esign-rest-api/how-to/

https://account-d.docusign.com(这也重定向到https://appdemo.docusign.com/home所以我也包括了这个 https://demo.docusign.net/

但是在返回我的应用程序(重定向 URI)时出现错误。

请提供具体的证书或完整的 URL,以便我自己下载证书。

罗伯特

标签: oracleoracle-apexdocusignapioracle-wallet

解决方案


通常的问题是您尚未将证书添加到文档存储中。对于 DocuSign,这就是 DigiCert 根证书。查看DocuSign 证书列表

添加

根证书在颁发者部分引用自己。对于 DocuSign,这是 DigiCert 证书:https ://www.docusign.com/sites/default/files/digicerthighassuranceevrootca_2.crt

您可以通过以文本格式转储来检查您是否拥有正确的证书,见下文。

这是文本转储的重要部分,表明证书是根证书(它引用自己):

Certificate:
    Data:
        ...
        Issuer: C = US, O = DigiCert Inc, OU = www.digicert.com, 
                CN = DigiCert High Assurance EV Root CA
        Subject: C = US, O = DigiCert Inc, OU = www.digicert.com, 
                 CN = DigiCert High Assurance EV Root CA

完整的证书转储

$ openssl x509 -in ~/Downloads/digicerthighassuranceevrootca_2.crt -text -noout -inform der
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            02:ac:5c:26:6a:0b:40:9b:8f:0b:79:f2:ae:46:25:77
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert High Assurance EV Root CA
        Validity
            Not Before: Nov 10 00:00:00 2006 GMT
            Not After : Nov 10 00:00:00 2031 GMT
        Subject: C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert High Assurance EV Root CA
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:
                    00:c6:cc:e5:73:e6:fb:d4:bb:e5:2d:2d:32:a6:df:
                    e5:81:3f:c9:cd:25:49:b6:71:2a:c3:d5:94:34:67:
                    a2:0a:1c:b0:5f:69:a6:40:b1:c4:b7:b2:8f:d0:98:
                    a4:a9:41:59:3a:d3:dc:94:d6:3c:db:74:38:a4:4a:
                    cc:4d:25:82:f7:4a:a5:53:12:38:ee:f3:49:6d:71:
                    91:7e:63:b6:ab:a6:5f:c3:a4:84:f8:4f:62:51:be:
                    f8:c5:ec:db:38:92:e3:06:e5:08:91:0c:c4:28:41:
                    55:fb:cb:5a:89:15:7e:71:e8:35:bf:4d:72:09:3d:
                    be:3a:38:50:5b:77:31:1b:8d:b3:c7:24:45:9a:a7:
                    ac:6d:00:14:5a:04:b7:ba:13:eb:51:0a:98:41:41:
                    22:4e:65:61:87:81:41:50:a6:79:5c:89:de:19:4a:
                    57:d5:2e:e6:5d:1c:53:2c:7e:98:cd:1a:06:16:a4:
                    68:73:d0:34:04:13:5c:a1:71:d3:5a:7c:55:db:5e:
                    64:e1:37:87:30:56:04:e5:11:b4:29:80:12:f1:79:
                    39:88:a2:02:11:7c:27:66:b7:88:b7:78:f2:ca:0a:
                    a8:38:ab:0a:64:c2:bf:66:5d:95:84:c1:a1:25:1e:
                    87:5d:1a:50:0b:20:12:cc:41:bb:6e:0b:51:38:b8:
                    4b:cb
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                B1:3E:C3:69:03:F8:BF:47:01:D4:98:26:1A:08:02:EF:63:64:2B:C3
            X509v3 Authority Key Identifier: 
                keyid:B1:3E:C3:69:03:F8:BF:47:01:D4:98:26:1A:08:02:EF:63:64:2B:C3

    Signature Algorithm: sha1WithRSAEncryption
         1c:1a:06:97:dc:d7:9c:9f:3c:88:66:06:08:57:21:db:21:47:
         f8:2a:67:aa:bf:18:32:76:40:10:57:c1:8a:f3:7a:d9:11:65:
         8e:35:fa:9e:fc:45:b5:9e:d9:4c:31:4b:b8:91:e8:43:2c:8e:
         b3:78:ce:db:e3:53:79:71:d6:e5:21:94:01:da:55:87:9a:24:
         64:f6:8a:66:cc:de:9c:37:cd:a8:34:b1:69:9b:23:c8:9e:78:
         22:2b:70:43:e3:55:47:31:61:19:ef:58:c5:85:2f:4e:30:f6:
         a0:31:16:23:c8:e7:e2:65:16:33:cb:bf:1a:1b:a0:3d:f8:ca:
         5e:8b:31:8b:60:08:89:2d:0c:06:5c:52:b7:c4:f9:0a:98:d1:
         15:5f:9f:12:be:7c:36:63:38:bd:44:a4:7f:e4:26:2b:0a:c4:
         97:69:0d:e9:8c:e2:c0:10:57:b8:c8:76:12:91:55:f2:48:69:
         d8:bc:2a:02:5b:0f:44:d4:20:31:db:f4:ba:70:26:5d:90:60:
         9e:bc:4b:17:09:2f:b4:cb:1e:43:68:c9:07:27:c1:d2:5c:f7:
         ea:21:b9:68:12:9c:3c:9c:bf:9e:fc:80:5c:9b:63:cd:ec:47:
         aa:25:27:67:a0:37:f3:00:82:7d:54:d7:a9:f8:e9:2e:13:a3:
         77:e8:1f:4a

又加了一些

您仍在Certificate validation failure从您的框架接收 TLS 级别...一些建议的后续步骤:

检查客户端(您的应用程序)和服务器(DocuSign)之间的实际 TLS 协议。通过捕获跟踪文件并使用WireShark读取它来做到这一点。WireShark wiki 包含有关如何获取跟踪的说明。

这可能是不同类型的证书问题,例如支持的密码不匹配。

也可能是某种程度的错误配置。例如,您的应用程序框架是否使用 TLS 1.2?DocuSign 不支持 TLS 1.0(或 1.3)。TLS 1.1 即将推出。

一个常见问题是,当 TLS 级别出现问题时,许多框架没有提供好的细节。

如果您仍然遇到问题,请向 DocuSign 的开发人员支持小组开一张支持票。(但鉴于您目前的调查,他们向您提出的第一个请求将是请求 TLS 级别的跟踪。)


推荐阅读