Openssl:cat:/dev/fd/63:没有此文件或目录

Openssl:cat:/dev/fd/63:没有此文件或目录

我尝试使用创建证书签名请求(CSR)

openssl req -new -sha256 -key domain.key -subj "/" \ -reqexts SAN -config <(cat /System/Library/OpenSSL/openssl.cnf \ <(printf "[SAN]\nsubjectAltName=DNS:foo.com,DNS:www.foo.com"))

但收到以下错误信息

cat: /dev/fd/63: No such file or directory
unknown option -reqexts

有任何想法吗?

答案1

/dev/fd/63注意和之间的区别/dev/fd/63。额外的空格很重要。/dev/fd/63是可以工作的绝对路径。而 /dev/fd/63是相对路径。可能您当前的目录不包含名为 的子目录

名称中有空格,因为这是您所要求的。需要注意的命令部分是:\ <(

该序列\是一个转义空格,<(用于运行带有输出到管道的子 shell。

事情是这样的。

  1. 子 shell 以指向管道的 stdout 启动。
  2. 该管道的读取端的名称恰好是/dev/fd/63
  3. shell 会按照您的要求在该名称前面添加一个空格。
  4. shell 使用不存在的cat文件名进行调用。/dev/fd/63
  5. cat报告错误。

从命令中删除\肯定会使该错误消息消失。

相关内容