OS X上的Openssl密钥生成失败



我正试图在Spring项目的一个新的干净mac上运行我们的单元测试。一个测试需要生成ssl密钥。

我已经通过自制程序安装了openssl,但错误仍然存在。

请参阅以下错误:

Using configuration from /Users/myuser/workspace/project/webapp/target/test-data/clientvpn/acc1/openssl.conf
default is an unsupported message digest type
13499:error:02001002:system library:fopen:No such file or directory:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-59/src/crypto/bio/bss_file.c:126:fopen('./index.txt.attr','rb')
13499:error:2006D080:BIO routines:BIO_new_file:no such file:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-59/src/crypto/bio/bss_file.c:129:
13499:error:0E078072:configuration file routines:DEF_LOAD:no such file:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-59/src/crypto/conf/conf_def.c:197:

我在谷歌上进行了多次搜索,并与一位最近也搬到mac的同事进行了协商,从而解决了这个问题。

新openssl的符号链接不是在自制程序进行安装时创建的。如果运行brew link openssl,您将收到以下消息Warning: openssl is keg-only and must be linked with --force

这就引出了解决方案。Homebrew需要被明确告知创建正确的链接。

brew link --force openssl

如果您现在检查which openssl,您会注意到它指向brew安装的版本/usr/local/bin/openssl

这在Montery(12.2)上对我有效

brew install openssl
brew link openssl # outputs :
Warning: Refusing to link macOS provided/shadowed software: openssl@3
If you need to have openssl@3 first in your PATH, run:
  echo 'export PATH="/usr/local/opt/openssl@3/bin:$PATH"' >> ~/.zshrc
For compilers to find openssl@3 you may need to set:
  export LDFLAGS="-L/usr/local/opt/openssl@3/lib"
  export CPPFLAGS="-I/usr/local/opt/openssl@3/include"
For pkg-config to find openssl@3 you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/openssl@3/lib/pkgconfig"

我只是在使用命令,所以我做了:

echo 'export PATH="/usr/local/opt/openssl@3/bin:$PATH"' >> ~/.zshrc

有效,旧输出:

➜  ca git:(master) openssl version
LibreSSL 2.8.3

之后:

➜  ca git:(master) source ~/.zshrc
➜  ca git:(master) openssl version
OpenSSL 3.0.1 14 Dec 2021 (Library: OpenSSL 3.0.1 14 Dec 2021)

注意:根据您的需要可能需要的其他选项。注意2:我的默认shell是zsh,如果您使用bash,请将它添加到您的bashrc中,或者添加到您选择的shell中,它是PATH。

只需添加此标志,对我有效:

-CAcreateserial

来源:在MacOS 上使用openssl签署CSR时出错

通过允许我的操作系统访问该文件来修复它。例如,macos允许终端访问此文件。

相关内容

最新更新