開啟SSL

密碼學和 SSL/TLS 工具組

tsget

名稱

tsget - 時間戳記 HTTP/HTTPS 伺服器

語法

tsget -h server_url [-e extension] [-o output] [-v] [-d] [-k private_key.pem] [-p key_password] [-c client_cert.pem] [-C CA_certs.pem] [-P CA_path] [-r files] [-g EGD_socket] [request ...]

說明

此指令可用於透過 HTTP 或 HTTPS 將 RFC 3161 中規定的時間戳記要求傳送至時間戳記伺服器,並將時間戳記回應儲存在檔案中。無法使用此指令建立要求和驗證回應,您必須使用 openssl-ts(1) 執行此操作。如果在命令列中指定多個要求,此指令可以在不關閉 TCP 連線的情況下將多個要求傳送至伺服器。

此指令會針對每個時間戳記要求傳送下列 HTTP 要求

POST url HTTP/1.1
User-Agent: OpenTSA tsget.pl/<version>
Host: <host>:<port>
Pragma: no-cache
Content-Type: application/timestamp-query
Accept: application/timestamp-reply
Content-Length: length of body

...binary request specified by the user...

它預期會收到 application/timestamp-reply 類型的回應,而該回應會寫入檔案中,且不會進行任何詮釋。

選項

-h server_url

傾聽時間戳記要求的 HTTP/HTTPS 伺服器的 URL。

-e extension

如果未提供 -o 選項,此引數會指定輸出檔案的副檔名。輸出檔案的基本檔名會與輸入檔案相同。預設副檔名為 .tsr。 (選用)

-o output

此選項僅能在傳送單一要求至伺服器時指定。時間戳記回應會寫入指定的輸出檔案。 '-' 表示標準輸出。如果有多個時間戳記要求或未提供此引數,輸出檔案的名稱會根據輸入檔案的名稱和預設或指定的副檔名引數而產生。 (選用)

-v

目前處理的請求名稱會印在標準錯誤輸出中。 (選用)

-d

開啟底層 perl 模組 WWW::Curl::Easy 的詳細模式。您可以看到連線的詳細偵錯訊息。 (選用)

-k private_key.pem

(HTTPS) 如果透過 HTTPS 進行基於憑證的用戶端驗證,private_key.pem 必須包含使用者的私密金鑰。私密金鑰檔案可以選擇使用密碼保護。也必須指定 -c 選項。 (選用)

-p key_password

(HTTPS) 指定 -k 引數指定的私密金鑰的密碼。如果省略此選項,且金鑰受密碼保護,系統會提示您輸入密碼。 (選用)

-c client_cert.pem

(HTTPS) 如果透過 HTTPS 進行基於憑證的用戶端驗證,則 client_cert.pem 必須包含使用者的 X.509 憑證。還必須指定 -k 選項。如果未指定此選項,則不會進行基於憑證的用戶端驗證。(選用)

-C CA_certs.pem

(HTTPS) 受信任的 CA 憑證儲存區。對方的憑證憑證鏈必須包含此檔案中指定的其中一個 CA 憑證。如果使用 HTTPS,則必須提供選項 -C 或選項 -P。(選用)

-P CA_path

(HTTPS) 包含受信任 CA 憑證的路徑,用於驗證對方的憑證。必須使用 openssl-rehash(1) 準備目錄。如果使用 HTTPS,則必須提供選項 -C 或選項 -P。(選用)

-r files

請參閱 openssl(1) 中的「隨機狀態選項」 以取得更多資訊。

-g EGD_socket

EGD socket 的名稱,用於取得隨機資料。(選用)

request ...

包含 RFC 3161 DER 編碼時間戳請求的檔案清單。如果未指定任何請求,則只會將一個請求傳送至伺服器,且會從標準輸入中讀取該請求。(選用)

環境變數

TSGET 環境變數可以選擇性地包含預設引數。此變數的內容會新增至命令列引數清單中。

範例

以下範例假設 file1.tsqfile2.tsq 包含有效的時間戳請求,tsa.opentsa.org 會在埠 8080 監聽 HTTP 請求,在埠 8443 監聽 HTTPS 請求,TSA 服務在絕對路徑 /tsa 中提供。

透過 HTTP 取得 file1.tsq 的時間戳回應,輸出寫入至 file1.tsr

tsget -h http://tsa.opentsa.org:8080/tsa file1.tsq

透過 HTTP 取得 file1.tsqfile2.tsq 的時間戳回應,顯示進度,輸出分別寫入至 file1.replyfile2.reply

tsget -h http://tsa.opentsa.org:8080/tsa -v -e .reply \
      file1.tsq file2.tsq

建立時間戳請求,將其寫入至 file3.tsq,將其傳送至伺服器,並將回應寫入至 file3.tsr

openssl ts -query -data file3.txt -cert | tee file3.tsq \
      | tsget -h http://tsa.opentsa.org:8080/tsa \
      -o file3.tsr

透過未進行用戶端驗證的 HTTPS 取得 file1.tsq 的時間戳回應

tsget -h https://tsa.opentsa.org:8443/tsa \
      -C cacerts.pem file1.tsq

透過進行基於憑證的用戶端驗證的 HTTPS 取得 file1.tsq 的時間戳回應(如果 client_key.pem 受到保護,則會要求輸入密碼)

tsget -h https://tsa.opentsa.org:8443/tsa -C cacerts.pem \
      -k client_key.pem -c client_cert.pem file1.tsq

如果您使用 TSGET 環境變數,則可以縮短前一個命令列。下列命令與前一個範例執行相同的動作

TSGET='-h https://tsa.opentsa.org:8443/tsa -C cacerts.pem \
      -k client_key.pem -c client_cert.pem'
export TSGET
tsget file1.tsq

另請參閱

openssl(1)openssl-ts(1)WWW::Curl::Easyhttps://www.rfc-editor.org/rfc/rfc3161.html

版權所有 2006-2020 OpenSSL 專案作者。保留所有權利。

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