📜  反应本机自定义 ssl cer (1)

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

反应本机自定义 SSL 证书

在进行网站或应用程序的 SSL 加密传输时,需要使用 SSL 证书来加密数据。而本机自定义 SSL 证书可以让开发人员在本地进行测试时也能进行 SSL 加密传输。

什么是 SSL 证书?

SSL(Secure Sockets Layer)证书是一种数字证书,用于加密网络连接以确保数据安全。SSL 证书通常由证书颁发机构(Certificate Authority,CA)颁发,以充当网站或应用程序的身份证明。

为什么需要本机自定义 SSL 证书?

当开发人员要验证应用程序在 SSL 加密环境下的运行情况时,可能需要在自己的计算机上创建自定义 SSL 证书。此时,我们可以使用 OpenSSL 工具来创建自定义 SSL 证书,然后使用该证书来测试 SSL 加密传输。

如何生成本机自定义 SSL 证书?
使用 OpenSSL 工具生成自签名 SSL 证书

以下是使用 OpenSSL 工具生成自签名 SSL 证书的步骤:

  1. 在计算机上安装 OpenSSL 工具
  2. 打开终端或命令行界面
  3. 运行以下命令来生成私钥:
openssl genrsa -out key.pem 2048
  1. 运行以下命令来生成签名请求:
openssl req -new -key key.pem -out csr.pem
  1. 运行以下命令来生成自签名证书:
openssl x509 -req -days 365 -in csr.pem -signkey key.pem -out cert.pem

该证书有效期为一年。生成的 cert.pem 文件即为我们所需的自定义 SSL 证书。

使用 mkcert 工具生成自签名 SSL 证书

除了使用 OpenSSL 工具,我们还可以借助于更为简单的第三方工具 mkcert 来生成自定义 SSL 证书。

以下是使用 mkcert 工具生成自签名 SSL 证书的步骤:

  1. 在计算机上安装 mkcert 工具
  2. 打开终端或命令行界面
  3. 运行以下命令生成根证书:
mkcert -install
  1. 运行以下命令生成并签署自定义 SSL 证书:
mkcert example.com localhost 127.0.0.1 ::1

生成的文件即为我们所需的自定义 SSL 证书,例如 example.com+5.pem 和 example.com+5-key.pem 文件。

如何在程序中使用自定义 SSL 证书?

在我们生成了自定义 SSL 证书之后,需要在程序中对其进行配置。

例如,在 Node.js 程序中,我们可以使用以下代码来配置 SSL:

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

const options = {
  key: fs.readFileSync('key.pem'),
  cert: fs.readFileSync('cert.pem')
};

const server = https.createServer(options, (req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(443, () => {
  console.log('Server running on https://localhost:443/');
});

以上代码会启动一个使用自定义 SSL 证书的 HTTPS 服务器。我们可以在浏览器中访问 https://localhost:443 来查看结果。