证书处理
所有 Access Worldpay 服务都使用 HTTPS,并在您连接时提供 X509v3 证书。该证书可让连接客户端(通常是您的客户端)进行身份验证,以确定您与之通信的服务是否属于 Worldpay。本文档介绍了您应该执行的适当检查,以确保服务真实可信。
适当检查
以下列出了您必须对服务提供的证书执行适当检查的列表。
注释:除非配置为禁止检查,否则大多数现代语言的 TLS 库都会自动完成这些检查。有时会出于开发和测试的目的而禁用这些检查,但在您的生产系统上决不能将其禁用。
证书主题与主机名匹配
服务必须在 subject 替代 name (subjectAltName
) 字段中返回带有客户端正在尝试与其连接的域名的证书。该字段的值必须为 DNS
,因为这表示了完全符合资质的域名。
例如:
若要连接到 Access Worldpay:具有 DNS
值类型的字段 subject alternative name
或 subjectAltName
必须为 https://access.worldpay.com
注释:证书可能有多个主题替代名称。只有其中之一必须与客户端在尝试与其连接的域名匹配。
证书过期日期
包含定义证书有效期日期的 notBefore
和 notAfter
字段的证书。因此,仅在该窗口期内的日期才有效。
重要信息:您的系统时间必须与互联网时间服务器同步。这样可确保证书的有效时间窗口期与您预期的证书到期时间相一致。
证书链有效性
客户端应验证证书链上的每个签名,并确保证书符合证书颁发机构定义的政策。所有良好的 TLS 实施均会自动执行此功能。有关更多信息,请参见库/框架的文档。
每个客户端都有一个内置到操作系统、浏览器或应用程序框架中的信任根/信任锚列表。这些都是来自知名公司的证书,比如 DigiCert、Comodo、Microsoft 等。
Access Worldpay 证书都是已签名的 DigiCert 证书。因此,根证书很可能已经存在于客户端软件的运行时中了。
不恰当的检查
以下是客户端不应执行的检查,因为以下的值并非常量。
注释:以下列表并不详尽。
证书 DN
您不得缓存或存储证书的"可识别名称 (DN)",也不得针对所提供的证书来检查这些信息。
我们证书 currently 的 DN 看起来像是这样:
C=GB, L=London, O=WorldPay (UK) Ltd, OU=GW2.0, CN=access.worldpay.com
重要信息:我们在刷新证书时可能会更改该 DN。
证书指纹/拇指纹
您不得缓存或存储证书的指纹,也不得针对所提供的证书来检查这些信息。
指纹对于证书而言是独特的,因为它是通过获取证书的所有属性并根据这些值生成一个数字来计算得出的。
重要信息:当我们每年续订证书时,证书指纹将会变化。
公钥
您不得缓存或存储公钥,也不得针对所提供的证书来检查这些信息。
尽管并非必需的,但我们会作为续订的一部分而更改公钥,因为这是安全最佳实践。
重要信息:我们在续订证书时将更改公钥。续订会在过期之前至少提前 7 天进行。