我尝试使用创建证书签名请求(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。
事情是这样的。
- 子 shell 以指向管道的 stdout 启动。
- 该管道的读取端的名称恰好是
/dev/fd/63
- shell 会按照您的要求在该名称前面添加一个空格。
- shell 使用不存在的
cat
文件名进行调用。/dev/fd/63
cat
报告错误。
从命令中删除\
肯定会使该错误消息消失。