本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
OCSP 堆疊的伺服器憑證組態
AWS IoT Core 支援伺服器憑證的線上憑證狀態通訊協定 (OCSP)
您可以定期查詢 OCSP 回應程式,在 中啟用伺服器憑證 OCSP 堆疊 AWS IoT Core ,以檢查憑證的有效性。OCSP 堆疊設定是使用自訂網域建立或更新網域組態程序的一部分。OCSP 堆疊會持續檢查伺服器憑證上的撤銷狀態。這有助於驗證連線至自訂網域的用戶端不再信任 CA 撤銷的任何憑證。如需詳細資訊,請參閱在 中啟用伺服器憑證 OCSP AWS IoT Core。
伺服器憑證 OCSP 堆疊提供即時撤銷狀態檢查、減少與檢查撤銷狀態相關的延遲,並改善安全連線的隱私權和可靠性。如需使用 OCSP 堆疊優點的詳細資訊,請參閱 相較於用戶端 OCSP 檢查,使用 OCSP 堆疊的優勢。
注意
此功能無法在 中使用 AWS GovCloud (US) Regions。
在本主題中:
什麼是 OCSP?
線上憑證狀態通訊協定 (OCSP) 可協助為 Transport Layer Security (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
訊息回應。伺服器也會將伺服器憑證傳送至用戶端。用戶端會驗證伺服器憑證,並從中擷取 OCSP URI。
用戶端會將憑證撤銷檢查請求傳送至 OCSP 回應程式。
OCSP 回應程式會傳送 OCSP 回應。
用戶端會從 OCSP 回應驗證憑證狀態。
TLS 交握已完成。
伺服器端 OCSP
-
用戶端會
ClientHello
傳送訊息,以啟動與伺服器的 TLS 交握。 伺服器會收到訊息並取得最新的快取 OCSP 回應。如果快取的回應遺失或過期,伺服器會呼叫 OCSP 回應程式以取得憑證狀態。
OCSP 回應程式會將 OCSP 回應傳送至伺服器。
伺服器傳送訊息
ServerHello
。伺服器也會將伺服器憑證和憑證狀態傳送至用戶端。用戶端會驗證 OCSP 憑證狀態。
TLS 交握已完成。
OCSP 堆疊的運作方式
在用戶端和伺服器之間的 TLS 交握期間,會使用 OCSP 堆疊來檢查伺服器憑證撤銷狀態。伺服器向 OCSP 回應程式提出 OCSP 請求,並將 OCSP 回應與傳回給用戶端的憑證整合在一起。透過讓伺服器向 OCSP 回應程式提出請求,可以快取回應,然後對許多用戶端多次使用回應。
OCSP 堆疊如何在 中運作 AWS IoT Core
下圖顯示伺服器端 OCSP 堆疊如何在 中運作 AWS IoT Core。

-
裝置需要向啟用 OCSP 堆疊的自訂網域註冊。
-
AWS IoT Core 每小時呼叫 OCSP 回應程式以取得憑證狀態。
-
OCSP 回應程式會接收請求、傳送最新的 OCSP 回應,以及存放快取的 OCSP 回應。
-
裝置會
ClientHello
傳送訊息以啟動 TLS 交握 AWS IoT Core。 -
AWS IoT Core 從伺服器快取取得最新的 OCSP 回應,這會回應憑證的 OCSP 回應。
-
伺服器會
ServerHello
傳送訊息至裝置。伺服器也會將伺服器憑證和憑證狀態傳送至用戶端。 -
裝置會驗證 OCSP 憑證狀態。
-
TLS 交握已完成。
相較於用戶端 OCSP 檢查,使用 OCSP 堆疊的優勢
使用伺服器憑證 OCSP 堆疊的一些優點包括:
改善隱私權
如果沒有 OCSP 堆疊,用戶端的裝置可能會將資訊公開給第三方 OCSP 回應者,進而可能危及使用者隱私權。OCSP 堆疊可讓伺服器取得 OCSP 回應並將其直接交付給用戶端,以緩解此問題。
改善可靠性
OCSP 堆疊可以提高安全連線的可靠性,因為它可以降低 OCSP 伺服器中斷的風險。當 OCSP 回應為綁定時,伺服器會將最新的回應與憑證一起包含在內。這可讓用戶端存取撤銷狀態,即使 OCSP 回應程式暫時無法使用。OCSP 堆疊有助於緩解這些問題,因為伺服器會定期擷取 OCSP 回應,並在 TLS 交握中包含快取的回應。這可減少對 OCSP 回應者即時可用性的依賴。
減少伺服器負載
OCSP 堆疊會將回應 OCSP 請求的負擔從 OCSP 回應程式卸載至伺服器。這有助於更平均地分配負載,使憑證驗證程序更有效率且更具可擴展性。
降低延遲
OCSP 堆疊可減少在 TLS 交握期間檢查憑證撤銷狀態的相關延遲。伺服器傳送請求,並在交握期間使用伺服器憑證連接 OCSP 回應,而不是用戶端必須單獨查詢 OCSP 伺服器。
在 中啟用伺服器憑證 OCSP AWS IoT Core
若要啟用伺服器憑證 OCSP 堆疊 AWS IoT Core,請為自訂網域建立網域組態,或更新現有的自訂網域組態。如需使用自訂網域建立網域組態的一般資訊,請參閱 建立和設定客戶受管網域。
使用以下指示,使用 AWS Management Console 或 啟用 OCSP 伺服器堆疊 AWS CLI。
若要使用 AWS IoT 主控台啟用伺服器憑證 OCSP 堆疊:
在導覽功能表中,選擇設定,然後選擇建立網域組態,或選擇自訂網域的現有網域組態。
如果您選擇在上一個步驟中建立新的網域組態,您會看到建立網域組態頁面。在網域組態屬性區段中,選擇自訂網域。輸入資訊以建立網域組態。
如果您選擇更新自訂網域的現有網域組態,您會看到網域組態詳細資訊頁面。選擇編輯。
若要啟用 OCSP 伺服器堆疊,請在伺服器憑證組態子區段中選擇啟用伺服器憑證 OCSP 堆疊。
-
選擇建立網域組態或更新網域組態。
若要使用 啟用伺服器憑證 OCSP 堆疊 AWS 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"
如需詳細資訊,請參閱 AWS IoT API 參考中的 CreateDomainConfiguration 和 UpdateDomainConfiguration。
在 中為私有端點設定伺服器憑證 OCSP AWS IoT Core
適用於私有端點的 OCSP 可讓您將 Amazon Virtual Private Cloud (Amazon VPC) 中的私有 OCSP 資源用於 AWS IoT Core 操作。此程序涉及設定做為 OCSP 回應程式的 Lambda 函數。Lambda 函數可能會使用您的私有 OCSP 資源來製作 AWS IoT Core 將使用的 OCSP 回應。
Lambda 函數
為私有端點設定伺服器 OCSP 之前,請建立 Lambda 函數,做為評論請求 (RFC) 6960 相容線上憑證狀態通訊協定 (OCSP) 回應程式,以支援基本 OCSP 回應。Lambda 函數接受區分編碼規則 (DER) 格式的 OCSP 請求 base64 編碼。Lambda 函數的回應也是 DER 格式的 base64 編碼 OCSP 回應。回應大小不得超過 4 KB (KiB)。Lambda 函數必須與網域組態位於相同 AWS 帳戶 和 AWS 區域 。以下是 Lambda 函數的範例。
Lambda 函數範例
授權 AWS IoT 叫用您的 Lambda 函數
在使用 Lambda OCSP 回應程式建立網域組態的過程中,您必須授予在建立函數之後叫用 Lambda 函數的 AWS IoT 許可。若要授與許可,您可以使用 add-permission CLI 命令。
使用 將許可授予 Lambda 函數 AWS 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
IoT 網域組態 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 堆疊
若要使用 AWS IoT 主控台設定伺服器憑證 OCSP 堆疊:
從導覽功能表中,選擇設定,然後選擇建立網域組態,或選擇自訂網域的現有網域組態。
如果您選擇在上一個步驟中建立新的網域組態,您會看到建立網域組態頁面。在網域組態屬性區段中,選擇自訂網域。輸入資訊以建立網域組態。
如果您選擇更新自訂網域的現有網域組態,您會看到網域組態詳細資訊頁面。選擇編輯。
若要啟用 OCSP 伺服器堆疊,請在伺服器憑證組態子區段中選擇啟用伺服器憑證 OCSP 堆疊。
-
選擇建立網域組態或更新網域組態。
若要使用 設定伺服器憑證 OCSP 堆疊 AWS 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, 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
-
這是存放在 (ACM) 中 X.509 憑證的 Amazon Resource Name AWS Certificate Manager (ARN) 字串值。如果提供, AWS IoT Core 將使用此憑證來驗證收到的 OCSP 回應的簽章。如果未提供, AWS IoT Core 將使用發行憑證來驗證回應。憑證必須與網域組態位於相同的 AWS 帳戶 和 AWS 區域 。如需如何註冊授權回應者憑證的詳細資訊,請參閱將憑證匯入 AWS Certificate Manager。
- ocspLambdaArn
-
這是 Lambda 函數的 Amazon Resource Name (ARN) 字串值,可做為符合評論請求 (RFC) 6960 標準 (OCSP) 回應程式,支援基本 OCSP 回應。Lambda 函數接受使用 DER 格式編碼之 OCSP 請求的 base64 編碼。Lambda 函數的回應也是 DER 格式的 base64 編碼 OCSP 回應。回應大小不得超過 4 KB (KiB)。Lambda 函數必須與網域組態位於相同 AWS 帳戶 和 AWS 區域 。
如需詳細資訊,請參閱 AWS IoT API 參考中的 CreateDomainConfiguration 和 UpdateDomainConfiguration。
在 中使用伺服器憑證 OCSP 堆疊的重要注意事項 AWS IoT Core
當您在 中使用伺服器憑證 OCSP 時 AWS IoT Core,請記住下列事項:
-
AWS IoT Core 僅支援可透過公有 IPv4 地址連線的 OCSP 回應程式。
-
中的 OCSP 堆疊功能 AWS IoT Core 不支援授權的回應程式。所有 OCSP 回應都必須由簽署憑證的 CA 簽署,而且 CA 必須是自訂網域憑證鏈的一部分。
-
中的 OCSP 堆疊功能 AWS IoT Core 不支援使用自我簽署憑證建立的自訂網域。
-
AWS IoT Core 每小時呼叫 OCSP 回應程式並快取回應。如果對回應者的呼叫失敗, AWS IoT Core 會將最新的有效回應綁定在一起。
-
如果
nextUpdateTime
不再有效, AWS IoT Core 將從快取中移除回應,且 TLS 交握不會包含 OCSP 回應資料,直到下一次成功呼叫 OCSP 回應程式為止。當快取的回應在伺服器從 OCSP 回應程式取得有效的回應之前已過期時,就會發生這種情況。的值nextUpdateTime
表示 OCSP 回應在此之前都是有效的。如需nextUpdateTime
的相關資訊,請參閱 伺服器憑證 OCSP 日誌項目。 -
有時, AWS IoT Core 無法接收 OCSP 回應或移除現有的 OCSP 回應,因為它已過期。如果發生這類情況, AWS IoT Core 將繼續使用自訂網域提供的伺服器憑證,而無需 OCSP 回應。
-
OCSP 回應的大小不能超過 4 KiB。
對 中的伺服器憑證 OCSP 堆疊進行故障診斷 AWS IoT Core
AWS IoT Core 會向 CloudWatch 發出RetrieveOCSPStapleData.Success
指標和RetrieveOCSPStapleData
日誌項目。指標和日誌項目可協助偵測與擷取 OCSP 回應相關的問題。如需詳細資訊,請參閱伺服器憑證 OCSP 堆疊指標及伺服器憑證 OCSP 日誌項目。