如何使用mkcert在Linux和macOS上创建本地受信任的SSL证书
您是否厌倦了在本地开发项目中使用不受信任的SSL证书?维护自己的证书颁发机构(CA)是一个痛苦的事情,这过程中需要用到神秘的程序和命令。在本指南中,我将向您展示一种在没有CA的情况下在本地开发计算机上创建受信任SSL证书的简单方法。
mkcert是一个简单的零配置工具,由Filippo Valsorda使用Go编写,用于制作本地可信HTTPS SSL证书,无需任何配置。这将对您非常大的帮助,因为无法从可信证书颁发机构获取没有有效DNS记录的本地名称的证书。让我们深入研究安装和使用mkcert。
线上可以使用免费证书,具体请参考教程-使用Certbot为域名添加HTTPS SSL证书与自动续订。
如何在Ubuntu/Debian上安装mkcert
要在任何Ubuntu或Debian系统上安装mkcert,首先要安装certutil
依赖项:
sudo apt-get updatesudo 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 mkcertsudo 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 mkcertsudo 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 goyay -S --noconfirm --needed mkcert
如何在macOS上安装mkcert
对于macOS用户,您可以手动下载二进制安装mkcert或者从中brew
安装mkcert:
brew install mkcertbrew 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 mkcertsudo 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.net127.0.0.1 mydomain.com
打开浏览器并使用提供的域名,你应该得到一个绿色栏。如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持
以上是 如何使用mkcert在Linux和macOS上创建本地受信任的SSL证书 的全部内容, 来源链接: utcz.com/z/506984.html