创建本地开发环境ssl证书使用mkcert生成本地开发环境ssl证书

在程序开发过程中,使用 HTTPS 加密通信至关重要。生成 SSL 证书对于保护敏感数据必不可少。而对于开发人员来说,openssl 工具可能过于复杂。本文介绍 mkcert,一种简单易用的 Go 语言命令行工具,可用于生成本地自签名 SSL 证书。

mkcert 简介

mkcert 是一款开源工具,用于生成本地的自签名 SSL 证书。它基于 Golang 开发,跨平台兼容,无需配置即可使用。mkcert 支持多域名,还可自动信任 CA。

安装

MacOS

brew install mkcert
brew install nss # Firefox 浏览器支持

Linux

安装 certutil:
sudo apt install libnss3-tools
sudo yum install nss-tools
sudo pacman -S nss
sudo zypper install mozilla-nss-tools

使用 Linuxbrew 安装 mkcert:

brew install mkcert

或从源代码构建:

git clone https://github.com/FiloSottile/mkcert
cd mkcert
go build -ldflags "-X main.Version=$(git describe --tags)"

Windows

choco install mkcert

验证版本

mkcert -version

创建本地 CA

要生成可信任的证书,需要创建一个本地 CA:

mkcert -install

为 localhost 生成证书:

mkcert localhost

此命令会在当前目录生成 localhost.pem 和 localhost-key.pem 两个文件。

复制并安装证书

复制 localhost.pem 并将其重命名为 localhost.crt,用于本地安装:

cp localhost.pem localhost.crt

安装证书:

单击 localhost.crt 文件并按照浏览器提示进行安装。
将证书移动到 Nginx 目录

将 localhost.pem 和 localhost-key.pem 文件移动到 Nginx 目录:

cd /usr/local/etc/nginx
mkdir ssl
cd ~
cp localhost.pem /usr/local/etc/nginx/ssl/localhost.pem
cp localhost-key.pem /usr/local/etc/nginx/ssl/localhost-key.pem

配置 Nginx

在 Nginx 配置文件中添加以下内容:

ssl_certificate /usr/local/etc/nginx/ssl/localhost.pem;
ssl_certificate_key /usr/local/etc/nginx/ssl/localhost-key.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';

重启 Nginx

su root
nginx -t && nginx -s reload

生成多域名证书
要为多个域名生成证书,请运行以下命令:
在这里插入图片描述

mkcert example.com "*.example.com" example.test localhost 127.0.0.1 ::1

在这里插入图片描述

注意事项

**必须在客户端生成 SSL 证书。**切勿将从服务器生成的证书复制到客户端。
生成证书时 不要使用 sudo 权限,否则可能会导致证书颁发者无效的错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值