本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
用于装OCSP订的服务器证书配置
Amazon IoT Core 支持服务器证书的联机证书状态协议 (OCSP)
您可以通过定期查询OCSP响应者 Amazon IoT Core 来启用服务器证书OCSP装订以检查证书的有效性。OCSP装订设置是使用自定义域创建或更新域配置的过程的一部分。 OCSPstapling 会持续检查服务器证书上的吊销状态。这有助于验证已被 CA 吊销的所有证书是否不再受连接到您自定义域的客户端的信任。有关更多信息,请参阅 OCSP在中启用服务器证书 Amazon IoT Core。
服务器证书OCSP装订提供实时吊销状态检查,减少与检查吊销状态相关的延迟,并提高安全连接的隐私性和可靠性。有关使用装OCSP订的好处的更多信息,请参阅与客户端OCSP检查相比,使用OCSP装订的好处。
注意
此功能在中不可用 Amazon GovCloud (US) Regions。
本主题内容:
什么是 OCSP?
在线证书状态协议 (OCSP) 有助于为传输层安全 (TLS) 握手提供服务器证书的吊销状态。
重要概念
以下关键概念提供了有关在线证书状态协议 (OCSP) 的详细信息。
OCSP
OCSP
OCSP回应者
OCSP响应者(也称为OCSP服务器)接收并响应来自客户端的OCSP请求,这些请求旨在验证证书的吊销状态。
客户端 OCSP
在客户端OCSP,在握手期间,客户端使用OCSP联系OCSP响应者以检查证书的吊销状态。TLS
服务器端 OCSP
在服务器端OCSP(也称为OCSP装订)中,允许服务器(而不是客户端)向响应者发出请求。OCSP服务器将对证书的OCSP响应进行订阅,并在TLS握手期间将其返回给客户端。
OCSP图表
下图说明了客户端OCSP和服务器端OCSP的工作原理。
客户端 OCSP
客户端发送一条
ClientHello
消息以启动与服务器的TLS握手。服务器收到消息并用
ServerHello
消息进行响应。服务器还将服务器证书发送给客户端。客户端验证服务器证书并OCSPURI从中提取证书。
客户端向OCSP响应者发送证书吊销检查请求。
OCSP响应者发送响OCSP应。
客户端验证OCSP响应中的证书状态。
TLS握手已完成。
服务器端 OCSP
-
客户端发送一条
ClientHello
消息以启动与服务器的TLS握手。 服务器收到消息并获取最新的缓存OCSP响应。如果缓存的响应丢失或已过期,服务器将调用OCSP响应者以获取证书状态。
OCSP响应者向服务器发送OCSP响应。
服务器发送一条
ServerHello
消息。服务器还将服务器证书和证书状态发送给客户端。客户端验证OCSP证书状态。
TLS握手已完成。
OCSP装订的工作原理
OCSP在客户端和服务器之间的TLS握手期间,使用装订来检查服务器证书的吊销状态。服务器向OCSP响应者OCSP发出请求,并对返回给客户端的证书的OCSP响应进行装订。通过让服务器向OCSP响应者发出请求,可以缓存响应,然后多次用于许多客户端。
OCSP装订的工作原理 Amazon IoT Core
下图显示了服务器端OCSP装订的工作原理。 Amazon IoT Core
-
设备需要在启用OCSP装订功能的自定义域中注册。
-
Amazon IoT Core 每小时致电OCSP响应者以获取证书状态。
-
OCSP响应者接收请求,发送最新的OCSP响应,并存储缓存的OCSP响应。
-
设备发送一条
ClientHello
消息以启动TLS握手 Amazon IoT Core。 -
Amazon IoT Core 从服务器缓存中获取最新的OCSP响应,服务器缓存以证书的OCSP响应作为响应。
-
服务器向设备发送
ServerHello
消息。服务器还将服务器证书和证书状态发送给客户端。 -
设备验证OCSP证书状态。
-
TLS握手已完成。
与客户端OCSP检查相比,使用OCSP装订的好处
使用服务器证书OCSP装订的一些优点包括:
改善了隐私性
如果不OCSP进行装订,客户端的设备可能会将信息暴露给第三方OCSP响应者,从而可能损害用户隐私。 OCSPstapling 通过让服务器获取OCSP响应并将其直接传送给客户端,从而缓解了这个问题。
提高了可靠性
OCSP装订可以提高安全连接的可靠性,因为它可以降低OCSP服务器中断的风险。当OCSP对响应进行装订时,服务器会将最新的响应与证书一起包括在内。这样,即使OCSP响应者暂时不可用,客户端也可以访问撤销状态。 OCSP装订有助于缓解这些问题,因为服务器会定期获取OCSP响应并将缓存的响应包含在握手中TLS。这减少了对OCSP响应者实时可用性的依赖。
减少服务器负载
OCSPstapling 减轻了OCSP响应者向服务器OCSP发送的请求的负担。此举有助于更均匀地分配负载,从而提高证书验证过程的效率和可扩展性。
减少延迟
OCSP装订可以减少与握手期间检查证书吊销状态相关的延迟。TLS客户端不必单独查询OCSP服务器,而是在握手期间发送请求并附上带有服务器证书的OCSP响应。
OCSP在中启用服务器证书 Amazon IoT Core
要启用服务器证书OCSP装订 Amazon IoT Core,请为自定义域创建域配置或更新现有的自定义域配置。有关为自定义域创建域配置的一般信息,请参阅创建和配置客户托管域。
按照以下说明使用 Amazon Web Services Management Console 或 Amazon CLI启用OCSP服务器装订。
要使用 Amazon IoT 控制台启用服务器证书OCSP装订,请执行以下操作:
在导航菜单中,选择设置,然后选择创建域配置,或者为自定义域选择现有的域配置。
如果您在上一步中选择创建新的域配置,您将看到创建域配置页面。在域配置属性部分中,选择自定义域。输入创建域配置的信息。
如果您选择更新自定义域的现有域配置,您将看到域配置详细信息页面。选择编辑。
要启用OCSP服务器装订,请在 “服务器证书配置” 小节中选择 “启用服务器证书OCSP装订”。
-
选择创建域配置或更新域配置。
要启用服务器证书OCSP装订,请使用 Amazon CLI以下命令:
如果您为自定义域创建新的域配置,则启用OCSP服务器装订的命令可能如下所示:
aws iot create-domain-configuration --domain-configuration-name "myDomainConfigurationName" \ --server-certificate-arns arn:aws:iot:
us-east-1:123456789012
:cert/f8c1e5480266caef0fdb1bf97dc1c82d7ba2d3e2642c5f25f5ba364fc6b79ba3
\ --server-certificate-config "enableOCSPCheck=true|false"如果您更新自定义域的现有域配置,则启用OCSP服务器装订的命令可能如下所示:
aws iot update-domain-configuration --domain-configuration-name "myDomainConfigurationName" \ --server-certificate-arns arn:aws:iot:
us-east-1:123456789012
:cert/f8c1e5480266caef0fdb1bf97dc1c82d7ba2d3e2642c5f25f5ba364fc6b79ba3
\ --server-certificate-config "enableOCSPCheck=true|false"
有关更多信息,请参阅 “ Amazon IoT API参考” UpdateDomainConfiguration中的 “CreateDomainConfiguration和”。
在中OCSP为私有终端节点配置服务器证书 Amazon IoT Core
OCSP对于私有终端节点,您可以使用 Amazon Virtual Private Cloud (AmazonVPC) 中的私有OCSP资源进行 Amazon IoT Core 操作。该过程包括设置一个充当响应器的 Lambda 函数。OCSPLambda 函数可能会使用您的私有OCSP资源来制作 Amazon IoT Core 将使用的OCSP响应。
Lambda 函数
在OCSP为私有终端节点配置服务器之前,请创建一个 Lambda 函数,该函数充当符合评论请求 (RFC) 6960 的在线证书状态协议 (OCSP) 响应器,支持基本响应。OCSPLambda 函数接受以区分编码规则 () 格式对OCSP请求进行 base64 编码。DERLambda 函数的响应也是格式为 base64 编码OCSP的响应。DER响应大小不得超过 4 千字节 (KiB)。Lambda 函数必须与域 Amazon Web Services 区域 配置相同 Amazon Web Services 账户 。以下是 Lambda 函数的示例。
Lambda 函数示例
授权调用您 Amazon IoT 的 Lambda 函数
在使用 Lambda OCSP 响应器创建域配置的过程中,您必须授予在函数创建后调用 Lambda 函数的 Amazon IoT 权限。要授予权限,你可以使用 add-permiss ion CLI 命令。
使用授予您的 Lambda 函数的权限 Amazon CLI
-
插入您的值后,输入以下命令。请注意,
statement-id
值必须唯一。将
替换为您的确切值,否则,可能会出现Id-1234
ResourceConflictException
错误。aws lambda add-permission \ --function-name "ocsp-function" \ --principal "iot.amazonaws.com" \ --action "lambda:InvokeFunction" \ --statement-id "
Id-1234
" \ --source-arnarn:aws:iot:us-east-1:123456789012
:domainconfiguration/<domain-config-name>/*
--source-account123456789012
物联网域配置ARNs将遵循以下模式。服务生成的后缀在创建之前是未知的,因此必须将后缀替换为。
*
一旦创建了域配置并且知道了确切ARN的内容,您就可以更新权限。arn:
aws
:iot:use-east-1:123456789012
:domainconfiguration/domain-config-name/service-generated-suffix
-
如果命令成功,则返回一个权限语句,如本示例。您可以继续阅读下一节,为私有终端节点配置OCSP装订。
{ "Statement": "{\"Sid\":\"
Id-1234
\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"iot.amazonaws.com\"},\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws:lambda:us-east-1
:123456789012:function:ocsp-function\",\"Condition\":{\"ArnLike\":{\"AWS:SourceArn\":\"arn:aws:iot:us-east-1:123456789012
:domainconfiguration/domain-config-name/*
\"}}}" }如果命令不成功,则返回错误,如本示例。在继续操作之前,您需要查看并更正错误。
An error occurred (AccessDeniedException) when calling the AddPermission operation: User: arn:aws:iam::57EXAMPLE833:user/EXAMPLE-1 is not authorized to perform: lambda:AddPer mission on resource: arn:aws:lambda:
us-east-1
:123456789012
:function:ocsp-function
为私有OCSP端点配置服务器装订
要使用 Amazon IoT 控制台配置服务器证书OCSP装订,请执行以下操作:
从导航菜单中选择 “设置”,然后选择 “创建域配置”,或者为自定义域选择现有的域配置。
如果您在上一步中选择创建新的域配置,您将看到创建域配置页面。在域配置属性部分中,选择自定义域。输入创建域配置的信息。
如果您选择更新自定义域的现有域配置,您将看到域配置详细信息页面。选择编辑。
要启用OCSP服务器装订,请在 “服务器证书配置” 小节中选择 “启用服务器证书OCSP装订”。
-
选择创建域配置或更新域配置。
要使用 Amazon CLI以下方法配置服务器OCSP证书装订:
如果您为自定义域创建新的域配置,则OCSP为私有终端节点配置服务器证书的命令可能如下所示:
aws iot create-domain-configuration --domain-configuration-name "myDomainConfigurationName" \ --server-certificate-arns arn:aws:iot:
us-east-1:123456789012
:cert/f8c1e5480266caef0fdb1bf97dc1c82d7ba2d3e2642c5f25f5ba364fc6b79ba3
\ --server-certificate-config "enableOCSPCheck=true, ocspAuthorizedResponderArn=arn:aws:acm:us-east-1:123456789012
:certificate/certificate_ID
, ocspLambdaArn=arn:aws:lambda:us-east-1:123456789012
:function:my-function
"如果您更新自定义域的现有域配置,则OCSP为私有终端节点配置服务器证书的命令可能如下所示:
aws iot update-domain-configuration --domain-configuration-name "myDomainConfigurationName" \ --server-certificate-arns arn:aws:iot:
us-east-1:123456789012
:cert/f8c1e5480266caef0fdb1bf97dc1c82d7ba2d3e2642c5f25f5ba364fc6b79ba3
\ --server-certificate-config "enableOCSPCheck=true, ocspAuthorizedResponderArn=arn:aws:acm:us-east-1:123456789012
:certificate/certificate_ID
, ocspLambdaArn=arn:aws:lambda:us-east-1:123456789012
:function:my-function
"
- enableOCSPCheck
-
这是一个布尔值,用于指示服务器OCSP装订检查是否已启用。要启用服务器证书OCSP装订,此值必须为 true。
- ocspAuthorizedResponderArn
-
这是存储在 () 中的 Amazon Certificate Manager X.509 证书的 Amazon 资源名称 (ARN) 的字符串值。ACM如果提供, Amazon IoT Core 将使用此证书来验证收到的OCSP响应的签名。如果未提供, Amazon IoT Core 将使用签发证书来验证回复。证书必须与域配置相同 Amazon Web Services 账户 。 Amazon Web Services 区域 有关如何注册授权响应者证书的更多信息,请参阅将 Amazon Certificate Manager证书导入。
- ocspLambdaArn
-
这是 Lambda 函数的亚马逊资源名称 (ARN) 的字符串值,该函数充当符合征求意见 (RFC) 6960 () 的响应者,支持OCSP基本响应。OCSPLambda 函数接受OCSP请求的 base64 编码,该编码使用该格式进行编码。DERLambda 函数的响应也是格式为 base64 编码OCSP的响应。DER响应大小不得超过 4 千字节 (KiB)。Lambda 函数必须与域 Amazon Web Services 区域 配置相同 Amazon Web Services 账户 。
有关更多信息,请参阅 “ Amazon IoT API参考” UpdateDomainConfiguration中的 “CreateDomainConfiguration和”。
在中使用服务器证书OCSP装订的重要注意事项 Amazon IoT Core
OCSP在中使用服务器证书时 Amazon IoT Core,请记住以下几点:
-
Amazon IoT Core 仅支持那些可通过公共IPv4地址访问的OCSP响应者。
-
中的OCSP装订功能 Amazon IoT Core 不支持授权响应者。所有OCSP响应都必须由签署证书的 CA 签名,并且 CA 必须是自定义域证书链的一部分。
-
中的OCSP装订功能 Amazon IoT Core 不支持使用自签名证书创建的自定义域。
-
Amazon IoT Core 每小时呼叫一个OCSP响应者并缓存响应。如果对应答者的呼叫失败, Amazon IoT Core 将装订最新的有效回复。
-
如果不再有效,
nextUpdateTime
则 Amazon IoT Core 将从缓存中删除响应,而且 h TLS andshake 将在下一次成功调用OCSP响应者之前不包含OCSP响应数据。当缓存的响应在服务器从响应OCSP者那里获得有效响应之前已过期时,就会发生这种情况。的值nextUpdateTime
表示该OCSP响应在此之前将一直有效。有关nextUpdateTime
的更多信息,请参阅 服务器证书OCSP日志条目。 -
有时,由于已过期而 Amazon IoT Core 无法收到OCSPOCSP响应或删除现有响应。如果发生此类情况, Amazon IoT Core 将继续使用自定义域提供的服务器证书,而不会得到OCSP响应。
-
OCSP响应的大小不能超过 4 KiB。
对服务器证书OCSP装订进行故障排除 Amazon IoT Core
Amazon IoT Core 将RetrieveOCSPStapleData.Success
指标和RetrieveOCSPStapleData
日志条目发送到。 CloudWatch指标和日志条目可以帮助检测与检索OCSP响应有关的问题。有关更多信息,请参阅服务器证书OCSP装订指标 和服务器证书OCSP日志条目。