在 OS X 上生成 Opensl 密钥失败

2022-09-04 02:47:49

我正在尝试在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:

答案 1

我已经通过许多谷歌搜索和咨询解决了这个问题,这位同事最近也搬到了Mac上。

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

这就引出了解决方案。需要明确告知自制软件创建正确的链接。

brew link --force openssl

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


答案 2

这在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。