OpenSSL

密碼學和 SSL/TLS 工具組

openssl-s_time

名稱

openssl-s_time - SSL/TLS 效能計時程式

語法

openssl s_time [-help] [-connect 主機:埠號] [-www 網頁] [-cert 檔名] [-key 檔名] [-reuse] [-new] [-verify 深度] [-time 秒數] [-ssl3] [-tls1] [-tls1_1] [-tls1_2] [-tls1_3] [-bugs] [-cipher 密碼清單] [-ciphersuites ] [-nameopt 選項] [-cafile 檔案] [-CAfile 檔案] [-no-CAfile] [-CApath 目錄] [-no-CApath] [-CAstore uri] [-no-CAstore] [-provider 名稱] [-provider-path 路徑] [-propquery propq]

說明

此命令實作一個通用 SSL/TLS 伺服器,使用 SSL/TLS 連線到遠端主機。它可以從伺服器要求一個網頁,並將傳輸酬載資料的時間包含在計時測量中。它會測量在特定時間範圍內連線的數量、傳輸的資料量(如果有),並計算建立一個連線所花費的平均時間。

選項

-help

列印使用說明訊息。

-connect 主機:埠號

這會指定要連線的主機和選用的埠號。

-www 網頁

這會指定要從伺服器 GET 的網頁。值「/」會取得 index.html 網頁。如果未指定此參數,則此命令只會執行交握以建立 SSL 連線,但不會傳輸任何酬載資料。

-cert 憑證名稱

如果伺服器要求,則使用此憑證。預設是不使用憑證。檔案格式為 PEM。

-key 金鑰檔案

要使用的私人金鑰。如果未指定,則會使用憑證檔案。檔案格式為 PEM。

-verify 深度

要使用的驗證深度。這會指定伺服器憑證鏈的最大長度,並開啟伺服器憑證驗證。目前驗證作業會在錯誤發生後繼續,因此可以查看憑證鏈的所有問題。副作用是連線永遠不會因為伺服器憑證驗證失敗而失敗。

-new

使用每個連線的新工作階段 ID 執行計時測試。如果未指定 -new-reuse,則它們在預設情況下都開啟,並依序執行。

-reuse

使用相同的工作階段 ID 執行計時測試;這可以用作測試工作階段快取是否運作的測試。如果未指定 -new-reuse,則它們在預設情況下都開啟,並依序執行。

-bugs

SSL 和 TLS 實作中有幾個已知的錯誤。新增此選項會啟用各種解決方法。

-cipher cipherlist

這允許修改客戶端傳送的 TLSv1.2 及以下的密碼清單。此清單會與已設定的任何 TLSv1.3 密碼組合併。雖然伺服器會決定使用哪個密碼組,但它應該採用客戶端傳送的清單中第一個支援的密碼。請參閱 openssl-ciphers(1) 以取得更多資訊。

-ciphersuites val

這允許修改客戶端傳送的 TLSv1.3 密碼組。此清單會與已設定的任何 TLSv1.2 及以下的密碼組合併。雖然伺服器會決定使用哪個密碼組,但它應該採用客戶端傳送的清單中第一個支援的密碼。請參閱 openssl-ciphers(1) 以取得更多資訊。此清單的格式為用冒號 (":") 分隔的 TLSv1.3 密碼組名稱清單。

-time length

指定此命令應建立連線並選擇性地從伺服器傳輸酬載資料的時間長度(以秒為單位)。伺服器和客戶端效能以及連結速度會決定它可以建立多少個連線。

-nameopt option

這指定主旨或發行者名稱的顯示方式。請參閱 openssl-namedisplay-options(1) 以取得詳細資料。

-CAfile file, -no-CAfile, -CApath dir, -no-CApath, -CAstore uri, -no-CAstore

請參閱 openssl-verification-options(1) 中的「受信任憑證選項」 以取得詳細資料。

-provider name
-provider-path path
-propquery propq

請參閱 openssl(1) 中的「提供者選項」provider(7)property(7)

-cafile file

這是 -CAfile 的過時同義字。

-ssl3, -tls1, -tls1_1, -tls1_2, -tls1_3

請參閱 openssl(1) 中的「TLS 版本選項」

備註

此命令可用於衡量 SSL 連線的效能。若要連線到 SSL HTTP 伺服器並取得預設頁面,通常會使用命令

openssl s_time -connect servername:443 -www / -CApath yourdir -CAfile yourfile.pem -cipher commoncipher [-ssl3]

(https 使用 443 埠)。commoncipher 是客戶端和伺服器都可以同意的密碼,請參閱 openssl-ciphers(1) 命令以取得詳細資料。

如果交握失敗,則有幾個可能的原因,如果沒有明顯的原因,例如沒有客戶端憑證,則可以嘗試使用 -bugs-ssl3 選項,以防它是錯誤的伺服器。特別是,在向 OpenSSL 郵件清單提交錯誤報告之前,您應該使用這些選項。

嘗試讓客戶端憑證運作時,一個常見的問題是 Web 客戶端抱怨它沒有憑證或提供一個空的清單供選擇。這通常是因為伺服器在要求憑證時,未在其「可接受的 CA 清單」中傳送客戶端的憑證授權。透過使用 openssl-s_client(1),可以檢視並檢查 CA 清單。但是,有些伺服器只在要求特定 URL 之後才會要求客戶端驗證。若要在此情況下取得清單,有必要使用 openssl-s_client(1)-prexit 選項,並傳送適當頁面的 HTTP 要求。

如果使用 -cert 選項在命令列中指定憑證,則在伺服器特別要求用戶端憑證時才會使用該憑證。因此,僅在命令列中包含用戶端憑證並不能保證憑證有效。

BUG

由於此程式不具備 openssl-s_client(1) 程式中開啟和關閉通訊協定的所有選項,因此您可能無法衡量所有伺服器的所有通訊協定的效能。

如果伺服器驗證失敗,-verify 選項應確實退出。

歷程

-cafile 選項已在 OpenSSL 3.0 中棄用。

另請參閱

openssl(1)openssl-s_client(1)openssl-s_server(1)openssl-ciphers(1)ossl_store-file(7)

版權所有 2004-2021 OpenSSL 專案作者。保留所有權利。

根據 Apache 授權條款 2.0 版(「授權條款」)授權。您不得使用此檔案,除非符合授權條款。您可以在原始程式碼散佈中的 LICENSE 檔案中取得副本,或至 https://www.openssl.org/source/license.html 取得副本。