OpenSSL命令---tsget

本文介绍了一个用于处理时间戳的HTTP/HTTPS客户端工具。该工具主要用于向时间戳服务器发送请求并将响应保存到文件中。文章详细解释了命令的使用方法及各个选项的功能,并通过实例展示了如何使用此工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用途:

时间戳处理工具(HTTP/HTTPS客户端)。该命令发送一个时间戳请求(RFC3161)到一个HTTP/HTTPS时间戳服务器,服务器储存一个时间戳相应到文件中。这个工具不能用于创建一个请求和验证响应,可以用ts命令来执行这项操作。该命令可以在一个未关闭的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


该命令期待一个application/timestamp-reply类型的响应。该响应被保存到一个文件中(没有任何相关的解释)。

用法:

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


选项说明:

-h server_urlHTTP/HTTPS服务器地址,用于发送时间戳请求。

-e extension:该选项没有给出输出文件的额外信息值。

-o output:当一个请求被发送到服务器后,它才能够被指定。时间戳响应将会被写入到所指定的output文件。“-”表示为标准输出。当多个时间戳请求或输出文件的名字不够时,他们将会根据输入的文件和默认的或指定的额外的内容来衍生相对应的名字。

-v:把当前正在处理的请求名字输出到标准错误中。

-d:对最下面的curl来说,选择版本的模式。可以参考链接中的调试信息的详细说明。

-k private_key:用户的私钥文件。它有可能被一个密钥所保护。必须指定-c选项。

-p key_password:用户私钥文件的保护口令。如果省略了这个命令,则终端会提示输入口令。

-c client_cert:用户的X509格式的证书。必须指定-k选项。

-C CA_certs:可信任的证书储存区。在文件中,包含证书链的对方证书必须包含一个指定的CA证书。必须要给出-C命令或-P命令中一个。

-p CA_path:包含能够验证对方证书的可信任的CA证书路径。

-r files:随机种子产生文件。

-g EGD_socket:从随机数获取到的EGD套接字,

request:包含RFC3161编码格式的时间戳请求列表文件。如果没有请求被指定,则仅仅一个请求将会被发送到度武器并且从标准输入中读取数据。

实例:

file1.tsq中获取到时间戳响应,并输出到file1.tsr中:

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


file1.tsqfile2.tsq中获取到时间戳响应并显示处理流程,并输出到file1.tsrfile2.tsr中:

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


创建一个时间戳请求,并写入到file3.tsq中,发送到服务器并写入到file2.tsr中:

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


file1.tsq中获取到时间戳响应并没有客户端验证:

tsget -h https://tsa.opentsa.org:8443/tsa \
-C cacerts.pem file1.tsq
<think>我们正在处理OpenSSL编译过程中util/dofile.pl生成脚本并设置权限的问题。根据用户提供的信息,我们需要确保在编译过程中,dofile.pl能够正确生成所需的脚本文件(如apps/CA.pl, apps/tsget.pl, tools/c_rehash, util/shlib_wrap.sh),并为它们设置可执行权限。 在OpenSSL的编译过程中,通常使用Configure和make来构建。dofile.pl是OpenSSL构建系统中的一个Perl脚本,用于生成一些必要的脚本文件。在正常的构建流程中,这些脚本的生成和权限设置应该是自动完成的。但有时可能因为权限问题或构建环境配置不当导致失败。 以下是解决步骤: 1. **确保Perl环境正常**:因为dofile.pl是一个Perl脚本,所以需要确保系统安装了Perl,并且版本符合要求(OpenSSL 1.0.2要求Perl 5.10以上)。 2. **手动运行dofile.pl(如果需要)**:如果在构建过程中这些脚本没有自动生成,可以尝试手动运行dofile.pl来生成它们。但通常不需要手动运行,因为构建系统会自动处理。 3. **设置可执行权限**:如果生成的脚本没有可执行权限,需要手动添加。可以使用`chmod +x`命令。 然而,根据OpenSSL的构建流程,这些步骤通常由Makefile自动处理。因此,我们首先尝试正常的构建步骤,并观察是否有相关错误。如果构建过程中出现权限问题,可以尝试以更高权限运行(如使用sudo),但通常建议在用户目录下构建时不需要root权限,只需确保当前用户对构建目录有写权限。 具体步骤: - 进入OpenSSL源码目录。 - 运行配置脚本(如`./config`或`./Configure`,根据平台不同)。 - 运行`make`命令进行编译。 如果在构建过程中,dofile.pl没有正确生成脚本或设置权限,我们可以手动执行以下步骤: 1. 进入`util`目录,运行`dofile.pl`,并指定输出文件。但请注意,dofile.pl通常被Makefile调用,而不是直接运行。因此,我们可能需要查看Makefile中相关的目标,然后手动执行这些目标。 2. 实际上,在OpenSSL的Makefile中,有一个名为`generate`的目标,它负责生成这些脚本文件。我们可以尝试: ```bash make generate ``` 这个命令会运行dofile.pl来生成所需的脚本文件。 3. 如果生成成功,但权限不对,我们可以手动设置权限: ```bash chmod +x apps/CA.pl chmod +x apps/tsget.pl chmod +x tools/c_rehash chmod +x util/shlib_wrap.sh ``` 4. 然后再继续编译(`make`)。 另外,如果用户是在交叉编译环境(如引用[2]中提到的OHOS环境)中,可能需要调整构建工具链的设置。但基本步骤应该类似。 注意:在引用[1]中,用户提供了OpenSSL的版本信息(1.0.2r),因此我们针对这个版本进行说明。 **总结步骤**: 1. 确保构建环境满足要求(Perl等)。 2. 正常配置和构建OpenSSL(`./config` 和 `make`)。 3. 如果构建过程中出现脚本未生成或权限问题,可以尝试: - 运行`make generate`(如果Makefile支持)来生成脚本。 - 手动为生成的脚本设置可执行权限。 4. 如果问题依旧,检查构建日志,看是否有关于dofile.pl的错误信息,可能需要修复Perl脚本的执行环境。 如果用户是在交叉编译,可能需要指定正确的Perl解释器路径,因为交叉编译环境可能使用了不同的工具链。 希望这些步骤能帮助用户解决问题。</think>### OpenSSL 编译中 `dofile.pl` 生成脚本的权限设置 在 OpenSSL 编译过程中,`util/dofile.pl` 脚本负责生成多个关键脚本文件(如 `apps/CA.pl`、`apps/tsget.pl` 等),并自动设置可执行权限。以下是具体流程和操作说明: #### 1. **生成脚本的编译流程** - 当执行 `make` 或 `make build_all` 时,OpenSSL 的构建系统会自动调用 `util/dofile.pl`。 - 该脚本根据模板文件(`.in` 后缀)生成最终脚本,例如: - `apps/CA.pl.in` → `apps/CA.pl` - `apps/tsget.pl.in` → `apps/tsget.pl` - `tools/c_rehash.in` → `tools/c_rehash` - `util/shlib_wrap.sh.in` → `util/shlib_wrap.sh` - **权限设置**:生成后,脚本会自动添加可执行权限(相当于 `chmod +x`)[^1]。 #### 2. **手动验证与修复权限** 若自动流程失败,可手动检查并修复: ```bash # 进入 OpenSSL 源码目录 cd openssl-src # 手动生成脚本(需 Perl 环境) perl util/dofile.pl --auto apps/CA.pl.in > apps/CA.pl perl util/dofile.pl --auto apps/tsget.pl.in > apps/tsget.pl perl util/dofile.pl --auto tools/c_rehash.in > tools/c_rehash perl util/dofile.pl --auto util/shlib_wrap.sh.in > util/shlib_wrap.sh # 添加可执行权限 chmod +x apps/CA.pl apps/tsget.pl tools/c_rehash util/shlib_wrap.sh ``` #### 3. **关键注意事项** - **Perl 依赖**:确保系统已安装 Perl(`perl -v` 验证)。 - **构建环境权限**:编译目录需有写权限(避免 `Permission denied` 错误)。 - **交叉编译场景**:若为交叉编译(如 OHOS),需在 `Configure` 时指定目标平台: ```bash ./Configure linux-armv4 --cross-compile-prefix=aarch64-linux-gnu- ``` 确保工具链中的 `perl` 可用[^2]。 #### 4. **验证脚本是否生效** 编译后检查文件属性和权限: ```bash ls -l apps/CA.pl apps/tsget.pl tools/c_rehash util/shlib_wrap.sh ``` 正常输出应包含 `-rwxr-xr-x`(可执行权限)。 --- ### 常见问题解决 - **问题:脚本未生成** → 检查 `make` 输出日志,确认 `dofile.pl` 是否被调用;检查 `.in` 模板是否存在。 - **问题:权限设置失败** → 手动执行 `chmod +x`;或使用 `sudo make`(不推荐,优先修复目录权限)。 - **问题:跨平台编译错误** → 在 `Configure` 时明确指定目标平台和工具链路径[^2]。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值