如何使用mkcert在Linux和macOS上创建本地受信任的SSL证书

linux

您是否厌倦了在本地开发项目中使用不受信任的SSL证书?维护自己的证书颁发机构(CA)是一个痛苦的事情,这过程中需要用到神秘的程序和命令。在本指南中,我将向您展示一种在没有CA的情况下在本地开发计算机上创建受信任SSL证书的简单方法。

mkcert是一个简单的零配置工具,由Filippo Valsorda使用Go编写,用于制作本地可信HTTPS SSL证书,无需任何配置。这将对您非常大的帮助,因为无法从可信证书颁发机构获取没有有效DNS记录的本地名称的证书。让我们深入研究安装和使用mkcert。

线上可以使用免费证书,具体请参考教程-使用Certbot为域名添加HTTPS SSL证书与自动续订。

如何使用Certbot为域名添加HTTPS SSL证书与自动续订 | myfreaxCertbot是一个易于使用的客户端,它由EFF,Mozilla和开源组织发起的Let’s Encrypt(一个开放的证书颁发机构)获取证书,并将其部署到Web服务器,在本教程中我们将讨论如何使用Certbot工具为自己的http服务,站点配置https的SSL证书myfreaxmyfreax

如何在Ubuntu/Debian上安装mkcert

要在任何Ubuntu或Debian系统上安装mkcert,首先要安装certutil依赖项:

sudo apt-get update

sudo apt install wget libnss3-tools

安装完成后,下载 mkcert来自Github的二进制包。检查mkcert发布页面以获取最新版本。在撰写本文时,最新版本是v1.3.0

export VER="v1.3.0" && wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/${VER}/mkcert-${VER}-linux-amd64

下载文件后,使用mv命令将mkcert二进制文件移动到/usr/loa/bin目录 ,并使用chmod命令为mkcert可执行的二进制文件添加可执行权限:

chmod +x  mkcert

sudo mv mkcert /usr/local/bin

如何在CentOS/Fedora上安装mkcert

在CentOS和Fedora上安装mkcert类似于在Ubuntu/Debian安装。您需要先使用yum命令安装nss-tools工具。

sudo yum install nss-tools

安装完成后,使用wget命令下载mkcert二进制包。

export VER="v1.3.0" && wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/${VER}/mkcert-${VER}-linux-amd64

下载文件后,使用mv命令将mkcert二进制文件移动到/usr/loa/bin目录 ,并使用chmod命令为mkcert可执行的二进制文件添加可执行权限:

chmod +x  mkcert

sudo mv mkcert /usr/local/bin

如何在Arch Linux上安装mkcert

对于Arch Linux,您可以使用上述过程或使用AUR安装mkcert。如要安装,你需要使用AUR助手yay。yay是Arch Linux/Manjaro的最佳AUR助手。

安装yay后,使用yay命令安装mkcert:

yay -S --noconfirm --needed go

yay -S --noconfirm --needed mkcert

如何在macOS上安装mkcert

对于macOS用户,您可以手动下载二进制安装mkcert或者从中brew安装mkcert:

brew install mkcert

brew install nss # if you use Firefox

手动下载安装:

使用wget命令下载mkcert二进制包:

export VER="v1.3.0" && wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/${VER}/mkcert-${VER}-linux-amd64

下载文件后,使用mv命令将mkcert二进制文件移动到/usr/loa/bin目录 ,并使用chmod命令为mkcert可执行的二进制文件添加可执行权限:

chmod +x  mkcert

sudo mv mkcert /usr/local/bin

如何使用mkcert生成本地受信任的SSL证书

mkcert支持macOS system store,Windows system store,update-ca-trust (Fedora,RHEL,CentOS),update-ca-certificates (Ubuntu,Debian),Firefox(仅限macOS和Linux),Chrome and Chromium,Java等CA根证书系统。

Usage of mkcert:

$ mkcert -install

Install the local CA in the system trust store.

$ mkcert example.org

Generate "example.org.pem" and "example.org-key.pem".

$ mkcert example.com myapp.dev localhost 127.0.0.1 ::1

Generate "example.com+4.pem" and "example.com+4-key.pem".

$ mkcert '*.example.com'

Generate "_wildcard.example.com.pem" and "_wildcard.example.com-key.pem".

$ mkcert -pkcs12 example.com

Generate "example.com.p12" instead of a PEM file.

$ mkcert -uninstall

Uninstall the local CA (but do not delete it).

Change the CA certificate and key storage location by setting $CAROOT,

print it with "mkcert -CAROOT".

您需要首先在CA根证书系统中安装本地CA.

mkcert -install

Created a new local CA at "/home/myfreax/.local/share/mkcert" ?

The local CA is now installed in the system trust store! ⚡️

完成后,您可以开始为您的域生成SSL证书。例如,我将生成一个对以下名称有效的新证书myapp.net

"mydomain.com"

"*.mydomain.co"

"myapp.net"

"localhost"

"127.0.0.1"

"::1"

使用如下命令:

mkcert mydomain.com '*.mydomain.co' myapp.net localhost 127.0.0.1 ::1

输出内容如下

Using the local CA at "/root/.local/share/mkcert" ✨

Created a new certificate valid for the following names ?

- "mydomain.com"

- "*.mydomain.co"

- "myapp.net"

- "localhost"

- "127.0.0.1"

- "::1"

The certificate is at "./mydomain.com+5.pem" and the key at "./mydomain.com+5-key.pem" ✅

您也可以查看证书的内容:

cat ./mydomain.com+5.pem

测试mkcert证书

现在让我们使用一个简单的Nginx配置文件测试mkcert证书。这个例子是在Ubuntu 16.04系统上完成的。

sudo apt-get install nginx

创建一个简单的网页

# cat /etc/nginx/conf.d/test.conf 

server {

listen 80;

server_name mydomain.com myapp.net;

root /var/www/test;

}

server {

listen *:443 ssl http2;

root /var/www/test;

server_name mydomain.com myapp.net;

ssl_certificate /home/jmutai/mydomain.com+5.pem;

ssl_certificate_key /home/jmutai/mydomain.com+5-key.pem;

}

确保您的/etc/hosts文件包含已使用域的记录。

127.0.0.1 myapp.net

127.0.0.1 mydomain.com

打开浏览器并使用提供的域名,你应该得到一个绿色栏。如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持

以上是 如何使用mkcert在Linux和macOS上创建本地受信任的SSL证书 的全部内容, 来源链接: utcz.com/z/506984.html

回到顶部