如何在 Ubuntu 20.04 上使用 mkcert 创建本地受信任的 SSL 证书
Mkcert 是一个免费、简单且非常有用的工具,它允许您创建本地受信任的证书,而无需从真正的 CA 购买。开发人员通常在本地系统上工作,总是不可能在本地主机上使用来自 CA 的可信证书。 Mkcert 允许您轻松管理自己的证书。
在本文中,我们将向您展示如何在 Ubuntu 20.04 上使用 Mkcert 为本地开发创建受信任的 SSL 证书。
先决条件
运行 Ubuntu 20.04 Desktop 的系统。
在服务器上配置了根密码。
入门
首先,通过运行以下命令将系统包更新到更新版本:
apt-get update -y
更新所有包后,您可以继续下一步。
安装 Mkcert
在安装 Mkcert 实用程序之前,您需要将所需的软件包安装到您的服务器。您可以使用以下命令安装它:
apt-get install wget libnss3-tools
安装所有包后,从 Github 下载最新版本的 Mkcert。
wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64
下载 Mkcert 后,将下载的二进制文件移动到系统路径:
mv mkcert-v1.4.3-linux-amd64 /usr/bin/mkcert
接下来,为 mkcert 设置执行权限:
chmod +x /usr/bin/mkcert
接下来,使用以下命令验证 Mkcert 版本:
mkcert --version
您应该看到以下输出:
v1.4.3
生成本地 CA
现在,运行以下命令生成本地 CA 证书:
mkcert -install
您应该看到以下输出:
Created a new local CA ???
The local CA is now installed in the system trust store! ??
The local CA is now installed in the Firefox and/or Chrome/Chromium trust store (requires browser restart)! ???
您可以使用以下命令检查 CA 证书的路径:
mkcert -CAROOT
您应该看到以下输出:
/root/.local/share/mkcert
注意这里很重要:需要将该目录下的ca.pem 放到客户端 浏览器中。(浏览器导入证书到受信任的根目录下)
为本地网站生成证书
接下来,您可以使用以下命令为本地托管网站生成证书和密钥文件:
mkcert app.example.com localhost 127.0.0.1 ::1
您应该看到以下输出:
Created a new certificate valid for the following names ???
- “app.example.com”
- “localhost”
- “192.168.1.83”
- “127.0.0.1”
- “::1”
The certificate is at “./app.example.com+3.pem” and the key at “./app.example.com+3-key.pem” ?
It will expire on 1 November 2023 ???
配置 Nginx 以使用生成的证书
接下来,您需要配置 Nginx 网络服务器以使用生成的证书。
首先,将生成的证书文件复制到 /etc/ssl/ 目录:
cp app.example.com+3* /etc/ssl/
接下来,为 Nginx Web 根目录设置适当的所有权:
chown -R www-data:www-data /usr/share/nginx/html/
接下来,使用以下命令创建 Nginx 虚拟主机配置文件:
nano /etc/nginx/conf.d/app.conf
这里 可以直接修改 /etc/nginx/nginx.conf
添加以下行:
在http 内添加
server {
listen 80;
listen *:443 ssl;
root /usr/share/nginx/html;
server_name app.example.com;
ssl_certificate /etc/ssl/app.example.com+3.pem;
ssl_certificate_key /etc/ssl/app.example.com+3-key.pem;
}
完成后保存并关闭文件,然后验证 Nginx 是否存在任何语法错误:
nginx -t
您应该看到以下输出:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
接下来,重新启动 Nginx 服务以应用更改:
systemctl restart nginx
接下来,编辑 /etc/hosts 文件并将您的 app.example.com 绑定到您的系统 IP 地址:
nano /etc/hosts
添加以下行:
your-server-ip app.example.com
为您的域验证 SSL
现在,打开您的 Web 浏览器并输入 URL https://app.example.com。您应该看到您的域已使用 Mkcert 进行保护。
现在,单击锁定图标。您应该在以下页面上看到有关证书的信息:
结论
恭喜!您已成功安装 Mkcert 并为您的本地开发创建受信任的 CA 证书。我建议仅将 Mkcert 用于开发环境。不推荐用于生产环境。