- 问题:使用不受信任的 CA 还是自签名证书
修复:对于 Webhook 回调服务器,使用公共 CA 颁发的 SSL 证书。
新增功能
快速入门
管理
发送、签署和管理协议
高级协议功能和工作流程
与其他产品集成
Acrobat Sign 开发人员
支持和故障排除
双重 SSL(通常称为客户端 SSL 或相互 TLS)是一种 SSL 模式,其中服务器和客户端(Web 浏览器)出示证书,以识别自身身份。
帐户管理员可以在安全性设置页面上配置客户端证书。
Acrobat Sign 在向 Webhook URL 传递负载时验证 SSL 证书。SSL 证书验证失败的 Webhook 无法成功传递 JSON 负载。
使用双重 SSL 以对客户端 (Acrobat Sign) 进行身份验证,并侦听服务,以确保仅 Acrobat Sign 可访问 Webhook URL。
如果 Webhook 是由合作伙伴应用程序创建的,则在发送 Webhook 通知时,Webhook 将使用来自合作伙伴应用程序帐户的客户端证书(如果可用)来识别自身身份。
以下是 Web 服务器验证过程和客户端认证验证的最常见问题。
注册 Webhook 期间,Acrobat Sign 会验证 Webhook 服务器 URL。
如果无法从 Acrobat Sign 完成与 Webhook 回调 URL 的连接,则客户将无法注册 Webhook。
否。
Webhook 回调 URL 只能是端口 443 或 8443 上的 HTTPS。
Acrobat Sign 阻止 HTTPS 出站流量到达所有其他端口。
修复:对于 Webhook 回调服务器,使用公共 CA 颁发的 SSL 证书。
修复:在 Webhook 回调服务器上安装中间证书。
请参阅 https://www.digicert.com/kb/ssl-certificate-installation.htm 以获取详细信息。
为了给 Webhook 设置双向 SSL,我们需要管理员上传包含私钥的 .p12(或 .pfx)文件。该文件安全地存储在客户帐户中,管理员可以随时将其删除。
在双向 Webhook 设置中,Acrobat Sign 是调用方/客户端,需要使用私钥来证明调用是由 Acrobat Sign 代表客户帐户进行的。
客户端凭据可以是自签名证书,也可以是 CA 颁发的证书。但是,它必须至少符合以下 X.509 v3 扩展:
X.509 v3 扩展 |
Value |
---|---|
ExtendedKeyUsage |
clientAuth (OID: 1.3.6.1.5.5.7.3.2) |
KeyUsage |
digitalSignature |
客户端证书必须是扩展名为 .p12 或 .pfx 的 PKCS12 文件,并且必须包括客户端证书(以便服务器可以验证客户端的身份)和客户端的私钥(以便客户端可以对消息进行数字签名,从而使服务器在 SSL 握手期间进行验证)。
使用 openssl 命令验证 p12 (pfx) 文件:
openssl pkcs12 -info -in outfile.p12
应该请求私钥的密码。输出应同时包含证书和加密私钥,例如:
包属性 localKeyID: 9D BD 22 80 E7 B2 B7 58 9E AE C8 42 71 F0 39 E1 E7 2B 57 DB subject=/C=US/ST=California/L=San Jose/O=Adobe Inc./CN=sp.adobesignpreview.com issuer=/C=US/O=DigiCert Inc/CN=DigiCert TLS RSA SHA256 2020 CA1 -----BEGIN CERTIFICATE----- MIIGwDCCBaigAwIBAgIQAhJSKDdyQZjlbYO5MJAYOTANBgkqhkiG9w0BAQsFADBP MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMSkwJwYDVQQDEyBE ... JAKQLQ== -----END CERTIFICATE----- 包属性:<No Attributes> subject=/C=US/O=DigiCert Inc/CN=DigiCert TLS RSA SHA256 2020 CA1 issuer=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA -----BEGIN CERTIFICATE----- MIIEvjCCA6agAwIBAgIQBtjZBNVYQ0b2ii+nVCJ+xDANBgkqhkiG9w0BAQsFADBh MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 ... -----END CERTIFICATE----- 包属性 localKeyID: 9D BD 22 80 E7 B2 B7 58 9E AE C8 42 71 F0 39 E1 E7 2B 57 DB 关键属性:<No Attributes> -----BEGIN ENCRYPTED PRIVATE KEY----- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQI7eNh2qlsLPkCAggA ... FHE= -----END ENCRYPTED PRIVATE KEY-----
证书中应至少包含最终实体证书和中间证书。理想情况下,它还将包含根 CA 证书。
确保 .p12 或 .pfx 文件受密码保护。
创建自签名客户端证书(可选)
客户端证书可以是 CA 颁发的,也可以是自签名的,具体根据您的需要。
要生成自签名客户端证书,请使用以下 openssl 命令:
openssl req -newkey rsa:4096 -keyform PEM -keyout ca.key -x509 -days 3650 -outform PEM -out ca.cer
对生成的文件加密,因为它们是您的自签名 CA 证书。
接下来,生成客户端 .p12 文件:
openssl genrsa -out client.key 2048
openssl req -new -key client.key -out client.req
openssl x509 -req -in client.req -CA ca.cer -CAkey ca.key -set_serial 101 -extensions client -days 365 -outform PEM -out client.cer
openssl pkcs12 -export -inkey client.key -in client.cer -out client.p12
rm client.key client.cer client.req
为何 Acrobat Sign 会拒绝我的 PFX 文件,即使我已经通过 Postman 验证了该文件?
如果您已按照上述流程验证 pfx 文件,但 Acrobat Sign 仍拒绝该 pfx 文件,则该文件可能是由可生成非标准 PKCS12 文件的 Microsoft 工具生成的。
在这种情况下,请使用以下 openssl 命令从 pfx 文件中提取证书和私钥,然后生成格式正确的 PKCS12 文件:
// 从 pfx 文件提取证书和私钥 openssl pkcs12 -info -in microsoftclientssl.pfx -passin pass:"" -out clientcert.crt -nokeys openssl pkcs12 -info -in microsoftclientssl.pfx -passin pass:"" -out clientcert.key -nodes -nocerts // 新建 PKCS12 文件 openssl pkcs12 -export -inkey clientcert.key -in clientcert.crt -out clientcert.pfx