📌  相关文章
📜  macos localhost 自签名证书 (1)

📅  最后修改于: 2023-12-03 15:17:29.090000             🧑  作者: Mango

macOS localhost 自签名证书

在开发过程中,有时我们需要在本地搭建一个 Web 服务器或使用 HTTPS 加密传输数据,此时我们就需要使用 SSL(Secure Socket Layer) 证书,但是商业 SSL 证书需要花费数百元甚至以上的费用,而且在开发环境下使用商业 SSL 证书并不方便,这时,我们可以使用自签名 SSL 证书。

在 macOS 上生成自签名 SSL 证书可以方便地让我们在开发环境下使用 HTTPS,下面教程将详细介绍如何在 macOS 上生成自签名 SSL 证书。

生成 SSL 证书

首先,我们需要打开终端,并输入以下命令来进入密钥链工具:

$ sudo /Applications/Utilities/Keychain\ Access.app/Contents/MacOS/Keychain\ Access

该命令需要使用管理员权限,因此需要输入你的用户名和密码。进入密钥链工具后,依次点击“钥匙串访问” -> “证书助理” -> “创建证书…”

在弹出的对话框中,输入证书名称,选择“自签名根证书”作为证书类型,然后点击“继续”。

在接下来的对话框中,选择“继续”,直到出现“创建证书”对话框。

在该对话框中,输入证书的名称、标识名称、电子邮件地址,然后选择“存储位置”为“系统锁定钥匙串”,最后点击“继续”即可创建证书。

安装 SSL 证书

证书创建完成后,我们需要将其安装到系统锁定钥匙串中,以便于在使用时能够被识别。

首先在密钥链工具中,找到我们刚刚创建的证书,然后双击打开该证书。

在证书信息界面中,选择“信任”,然后在“使用此证书时”下拉框中选择“始终信任”,最后关闭对话框即可。

使用 SSL 证书

安装证书后,我们就可以在开发环境中使用了。

以 Node.js 为例,我们需要在代码中指定证书的路径和端口号。具体操作如下:

const https = require('https');
const fs = require('fs');

const options = {
  key: fs.readFileSync('/path/to/cert.key'), // 自签名证书的私钥路径
  cert: fs.readFileSync('/path/to/cert.crt') // 自签名证书的证书路径
};

https.createServer(options, (req, res) => {
  res.writeHead(200);
  res.end('Hello World!');
}).listen(443);

注意,由于自签名证书并没有通过任何证书授权机构(CA)的认证,因此在使用时需要手动信任该证书,否则会提示证书不受信任的警告。另外,在生产环境中不建议使用自签名证书,应当使用商业 SSL 证书或免费的 Let's Encrypt 证书。

以上就是在 macOS 上生成自签名 SSL 证书的方法,希望对大家有所帮助!