当前位置: 首页 > ds >正文

从Homebrew找到openssl.cnf文件并拷贝到Go项目下使用

安装OpenSSL

在 macOS 上下载和安装 OpenSSL 最常见和推荐的方式是使用 Homebrew,这是一个 macOS 缺失的包管理器。

如果您还没有安装 Homebrew,请先安装它。安装 Homebrew 后,安装 OpenSSL 只需要一条命令。

步骤 1:安装 Homebrew(如果尚未安装)

打开您的终端应用程序 (可以在 Spotlight 搜索中输入 “Terminal” 找到),然后粘贴并运行以下命令:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

按照屏幕上的指示完成安装。这可能需要您输入您的用户密码。

步骤 2:使用 Homebrew 安装 OpenSSL

Homebrew 默认会安装最新稳定版的 OpenSSL 3。在终端中运行:

brew install openssl@3

Homebrew 会下载并安装 OpenSSL。安装完成后,它会告诉您 OpenSSL 的安装路径,通常是 /opt/homebrew/opt/openssl@3

步骤 3:配置您的 shell 环境 (重要!)

Homebrew 安装的 OpenSSL 不会自动链接到 /usr/local/bin/usr/bin,以避免与 macOS 内置的旧版本 OpenSSL 发生冲突。这意味着您需要手动配置您的 shell 环境,以便程序能够找到 Homebrew 安装的 OpenSSL。

Homebrew 在安装完成后通常会给出配置提示,类似这样:

==> openssl@3
openssl@3 is keg-only, which means it was not symlinked into /opt/homebrew.
If you need to have openssl@3 first in your PATH, run:echo 'export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH"' >> ~/.zshrcFor compilers to find openssl@3 you may need to set:export LDFLAGS="-L/opt/homebrew/opt/openssl@3/lib"export CPPFLAGS="-I/opt/homebrew/opt/openssl@3/include"

请按照 Homebrew 的提示进行操作。以下是通用的做法:

对于 zsh 用户(macOS Ventura 及更高版本的默认 shell):

打开终端,运行以下命令将 OpenSSL 路径添加到您的 PATH 环境变量中,并设置 LDFLAGS 和 CPPFLAGS,这些是编译时需要的环境变量:

echo 'export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH"' >> ~/.zshrc
echo 'export LDFLAGS="-L/opt/homebrew/opt/openssl@3/lib"' >> ~/.zshrc
echo 'export CPPFLAGS="-I/opt/homebrew/opt/openssl@3/include"' >> ~/.zshrc

然后,重新加载您的 .zshrc 文件使更改生效:

source ~/.zshrc

对于 bash 用户(旧版 macOS 的默认 shell 或您手动切换的):

将上述命令中的 ~/.zshrc 替换为 ~/.bash_profile~/.bashrc (取决于您的配置),然后重新加载:

echo 'export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH"' >> ~/.bash_profile # 或者 ~/.bashrc
echo 'export LDFLAGS="-L/opt/homebrew/opt/openssl@3/lib"' >> ~/.bash_profile # 或者 ~/.bashrc
echo 'export CPPFLAGS="-I/opt/homebrew/opt/openssl@3/include"' >> ~/.bash_profile # 或者 ~/.bashrc
source ~/.bash_profile # 或者 source ~/.bashrc

步骤 4:验证安装

配置完成后,关闭并重新打开您的终端应用程序,或者再次运行 source 命令。然后,您可以运行以下命令来验证 OpenSSL 是否已正确安装且您的系统正在使用 Homebrew 版本:

openssl version

输出应该显示类似 OpenSSL 3.x.x ... 的信息。

您还可以验证 which openssl 的输出:

which openssl

这应该显示 /opt/homebrew/opt/openssl@3/bin/openssl (或者如果您将其链接到 /usr/local/bin,则显示 /usr/local/bin/openssl)。

这样,您的 macOS 系统就成功安装了 OpenSSL,并且您的开发环境也配置好了,以便在编译需要 OpenSSL 的其他软件时能够找到它。
macOS 和 Windows 在文件系统结构和 Homebrew 的安装方式上有所不同,导致 openssl.cnf 文件不容易找到。

在 Windows 上,当您安装 OpenSSL 时,openssl.cnf 文件通常会放在安装目录的 binconf 文件夹下,方便直接复制。

然而,在 macOS 上,使用 Homebrew 安装的 OpenSSL (例如 openssl@3),其 openssl.cnf 文件默认位于 Homebrew 的 Cellar 目录中,并且通常不会直接在 bin 目录下。

找到 openssl.cnf 文件

  1. 找到 OpenSSL 的安装路径:
    首先,确定 Homebrew 安装的 OpenSSL 的具体路径。最简单的方法是使用 brew --prefix 命令:

    brew --prefix openssl@3
    

    这个命令通常会返回类似 /opt/homebrew/opt/openssl@3 的路径(如果您使用的是 Apple Silicon Mac)。如果是 Intel Mac,可能是 /usr/local/opt/openssl@3

  2. 查找 openssl.cnf 文件:
    进入上一步找到的 OpenSSL 安装路径,然后查找 openssl.cnf。它通常位于 etc/openssl/ssl/ 目录下。

    假设上一步返回的路径是 /opt/homebrew/opt/openssl@3,您可以尝试:

    find /opt/homebrew/opt/openssl@3 -name openssl.cnf
    

    这条命令会在 /opt/homebrew/opt/openssl@3 目录下搜索名为 openssl.cnf 的文件。

    最常见的位置是:
    /opt/homebrew/opt/openssl@3/etc/openssl/openssl.cnf (对于 OpenSSL 3)

    /usr/local/etc/openssl@3/openssl.cnf (对于 OpenSSL 3,可能是符号链接)

    /opt/homebrew/etc/openssl@3/openssl.cnf (对于 OpenSSL 3,也是符号链接)

    如果您安装的是 openssl (而不是 openssl@3,通常指的是 OpenSSL 1.1),它可能在:
    /opt/homebrew/etc/openssl/openssl.cnf

    /usr/local/etc/openssl/openssl.cnf

如果没有找到
在这里插入图片描述
这表明它可能不在 openssl@3 的顶层安装目录中,或者它位于一个更深的子目录。

根据 Homebrew 安装 OpenSSL 的惯例,openssl.cnf 通常位于以下路径:

  • 对于 OpenSSL 3: /opt/homebrew/etc/openssl@3/openssl.cnf
  • 对于 OpenSSL 1.1: /opt/homebrew/etc/openssl/openssl.cnf

这些路径是 Homebrew 创建的符号链接,指向实际安装在 Cellar 目录下的文件。Homebrew 通常会将配置文件放在 etc 目录下,以便于管理。

请尝试直接查看这些路径:

  1. 检查 OpenSSL 3 的配置文件路径:

    ls -l /opt/homebrew/etc/openssl@3/openssl.cnf
    

    在这里插入图片描述

  2. 如果您不确定自己安装的是 OpenSSL 哪个版本,可以同时检查 OpenSSL 1.1 的路径:

    ls -l /opt/homebrew/etc/openssl/openssl.cnf
    

找到文件后,如何复制到项目目录下?

一旦您找到了 openssl.cnf 文件的确切路径,您就可以使用 cp 命令将其复制到您的项目目录下。

假设您的项目目录是 /path/to/your/project,并且您找到了 openssl.cnf/opt/homebrew/opt/openssl@3/etc/openssl/openssl.cnf

cp /opt/homebrew/opt/openssl@3/etc/openssl/openssl.cnf /path/to/your/project/

请将 /path/to/your/project/ 替换为您实际的项目路径。
在这里插入图片描述

重要提示:

  • 默认配置: 在大多数情况下,生成普通的证书和私钥,您不需要修改 openssl.cnf 文件。当老师要求复制时,通常是为了修改一些默认参数(如默认国家、省份等信息),或者启用一些高级功能(如扩展字段)。
  • 环境变量: OpenSSL 默认会查找 /usr/local/ssl/openssl.cnf 或通过 OPENSSL_CONF 环境变量指定的路径。如果您只是想临时使用自定义的 openssl.cnf,可以将该文件的路径通过环境变量传递给 openssl 命令,而不是直接复制到项目目录:
    OPENSSL_CONF=/path/to/your/project/openssl.cnf openssl req -new -x509 ...
    
http://www.xdnf.cn/news/9944.html

相关文章:

  • vr中风--数据处理模型搭建与训练
  • NW907NW918美光固态闪存NW920NW930
  • mongodb删除字段
  • springboot拦截器的基本配置
  • lost connection to mysql server at ‘reading initial communication packet‘
  • 怒更一波免费声音克隆和AI配音功能
  • MediaMtx开源项目学习
  • window 显示驱动开发-转换 Direct3D 固定函数状态(二)
  • 《深度搜索-R1-0528》
  • git仓库服务gogs详解
  • EfficMultiCoreMemoryPool项目
  • Git 中移除已追踪的文件
  • 解决 xmlsec.InternalError: (-1, ‘lxml xmlsec libxml2 library version mismatch‘)
  • TensorFlow深度学习实战(18)——K-means 聚类详解
  • QML视图组件ListView、TableView、GridView介绍
  • 人工智能-训练AI模型涉及多个步骤
  • 数据结构(7)树-二叉树-堆
  • uni-app 安卓消失的字符去哪里了?maxLength失效了!
  • 2025年DDoS混合CC攻击防御全攻略:构建智能弹性防护体系
  • c#与java的相同点和不同点
  • C# Renci.SshNet 登陆 suse配置一粒
  • 每日算法 -【Swift 算法】盛最多水的容器
  • Emacs 折腾日记(二十六)——buffer与窗口管理
  • 设计模式学习笔记
  • SOC-ESP32S3部分:17-I2C驱动实例-EEPROM温湿度传感器
  • 55、在软件测试中,确认测试有哪几种?
  • 常规个人信息安全设置(windwos一)
  • python异常处理
  • 学习如何设计大规模系统,为系统设计面试做准备!
  • DL00924-基于深度学习YOLOv11的工程车辆目标检测含数据集