Mac本地HTTPS可创建自签名SSL证书:一、用OpenSSL生成私钥和含SAN的证书;二、通过钥匙串访问导入并设为始终信任;三、用Certificate Assistant可视化创建带扩展属性证书;四、用mkcert自动化生成并安装可信证书。

如果您需要在Mac上为本地开发环境或测试用途配置HTTPS服务,但又无法使用公共CA签发的证书,则可以创建自签名SSL证书。以下是生成自签名证书的具体操作步骤:
一、使用OpenSSL命令行工具生成私钥和证书
OpenSSL是macOS系统中预装的加密工具集,可直接用于生成RSA私钥及配套的X.509格式自签名证书。该方法适用于大多数本地服务(如Nginx、Apache、Node.js等),且支持自定义有效期与域名扩展。
1、打开“终端”应用,执行以下命令生成2048位RSA私钥文件:
openssl genrsa -out localhost.key 2048
2、执行以下命令生成包含Subject Alternative Name(SAN)的自签名证书,适配localhost及常见本地域名:
openssl req -x509 -new -nodes -key localhost.key -sha256 -days 3650 -out localhost.crt -subj "/CN=localhost" -addext "subjectAltName = DNS:localhost, IP:127.0.0.1"
3、验证证书内容是否包含SAN字段:
openssl x509 -in localhost.crt -text -noout | grep -A1 "Subject Alternative Name"
二、使用Keychain Access图形界面导入并信任证书
仅生成证书文件不足以让Safari、Chrome等浏览器接受其为“安全”,还需将证书导入系统钥匙串并手动设为始终信任。此步骤确保浏览器不显示“您的连接不是私密连接”警告。
1、双击生成的localhost.crt文件,系统自动启动“钥匙串访问”应用并弹出导入对话框。
2、在钥匙串列表中选择系统,点击“添加”按钮完成导入。
3、在钥匙串访问左侧边栏中展开“系统”,在右侧列表中找到“localhost”条目,双击打开证书详情窗口。
4、展开“信任”选项,点击“安全策略”旁的三角箭头,在“当使用此证书时”下拉菜单中选择始终信任。
5、关闭窗口,输入管理员密码确认更改。
三、通过Certificate Assistant创建带扩展属性的证书
macOS内置的“钥匙串访问”附带Certificate Assistant工具,支持可视化方式创建符合RFC 5280标准的自签名证书,并可精确配置组织单位、国家代码、密钥用法等高级字段,适合需模拟企业级证书结构的场景。
1、打开“钥匙串访问”应用,点击顶部菜单栏“钥匙串访问 → 证书助理 → 创建证书…”
2、在弹出窗口中输入证书名称(例如DevLocalCert),将“证书类型”设为自签名根证书,勾选“让我覆盖这些默认值”。
3、点击“继续”,在后续页面中设置:组织单位为Development,国家为CN,密钥大小为2048位,有效期设为3650天。
4、进入“扩展”页签,点击“+”号添加“Subject Alternative Name”,填入DNS名称localhost和IP地址127.0.0.1。
5、点击“创建”,证书将自动保存至“系统”钥匙串。
四、使用mkcert工具自动化生成可信本地证书
mkcert是一个无需手动配置OpenSSL参数的跨平台工具,它会自动创建并安装本地CA根证书到系统钥匙串,再基于该CA签发域名证书,使生成的证书被所有主流浏览器默认信任,无需额外设置“始终信任”。
1、通过Homebrew安装mkcert:
brew install nss && brew install mkcert && brew install libnss
2、初始化本地CA并安装根证书:
mkcert -install
3、为localhost生成证书和私钥:
mkcert localhost 127.0.0.1 ::1
4、执行后将生成两个文件:localhost+2-key.pem(私钥)与localhost+2.pem(证书),二者可直接用于Web服务器配置。


















