如何使用mkcert创建SSL证书
source link: https://www.myfreax.com/how-to-create-locally-trusted-ssl-certificates-on-linux-and-macos-with-mkcert/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
如何使用mkcert创建SSL证书
您是否厌倦了在本地开发项目中使用不受信任的SSL证书?维护自己的证书颁发机构CA是一个痛苦的事情,这过程中需要用到神秘的程序和命令
您是否厌倦了在本地开发项目中使用不受信任的SSL证书?维护自己的证书颁发机构CA是一个痛苦的事情,这过程中需要用到神秘的程序和命令。
在本教程中,我将向您展示一种在没有CA的情况下在本地开发计算机上创建受信任SSL证书的简单方法。
mkcert是一个简单的零配置工具,由Filippo Valsorda使用Go编写,用于制作本地浏览器可信HTTPS SSL证书,无需任何配置。
这将对您非常大的帮助,因为你无法从可信证书颁发机构获取有效DNS记录的本地名称的证书。让我们深入研究安装和使用mkcert。
例如我们站点在开发Service workers时就需要使用本地的可信证书进行测试,当初就找到mkcert这个软件,感谢Filippo Valsorda编写的软件。
线上可以使用免费证书,具体请参考教程使用Certbot为域名添加HTTPS SSL证书与自动续订。
如果要在基于Debian的Linux发行版,例如Ubuntu,Linux mint等发行版安装mkcert,请首先使用apt软件包管理器更新索引运行命令sudo apt-get update
。
然后安装certutil
依赖软件,运行命令sudo apt install wget libnss3-tools
。
要在基于Redhat的Linux发行版,例如CentOS和Fedora等发行版安装mkcert。您需要先使用yum命令安装nss-tools
工具。
安装完成后,下载mkcert从Github仓库中的发行页面。在下载之前请先检查mkcert发布页面以获取最新版本。
在撰写本文时,最新版本是v1.3.0
。我们将使用wget命令下载mkcert二进制文件。
使用mv命令将mkcert二进制文件移动到/usr/local/bin
目录 ,这样就可以使用相对路径或者绝对路径运行mkcert。最后运行chmod命令为mkcert添加可执行权限。
sudo apt-get update
sudo apt install wget libnss3-tools
sudo yum install nss-tools -y #for centos Fedora Redhat
export VER="v1.3.0" && wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/${VER}/mkcert-${VER}-linux-amd64
chmod +x mkcert
sudo mv mkcert /usr/local/bin
对于macOS用户,您可以手动下载二进制安装mkcert或者从中brew
安装mkcert。
brew install mkcert
brew install nss # if you use Firefox
SSL证书
mkcert支持macOS,Windows,Fedora,RHEL,CentOS的update-ca-trust
,Ubuntu,Debian的update-ca-certificates
。Firefox,Chrome and Chromium,Java等CA根证书系统。
在创建本地可信证书之前,您需要运行命令mkcert -install
在本地安装CA根证书系统。
当安装CA后mkcert将会提示你Created a new local CA at "/home/myfreax/.local/share/mkcert",CA已经安装你在家目录中 。
完成后,您可以开始为您的域名生成SSL证书。例如,我们使用mkcert为域名example.org
创建本地可信SSL证书。
mkcert example.org
命令将会创建本地浏览器受信任的证书。mkcert将会创建两个文件example.org-key.pem
和example.org.pem
在当前目录下。
example.org-key.pem
文件是SSL证书的Key,可通过Nginx的ssl_certificate_key
指令指定。
example.org.pem
文件是SSL证书,可通过Nginx的ssl_certificate
指令指定。
mkcert -install
mkcert example.org
现在让我们使用一个简单的Nginx配置文件测试mkcert创建SSL证书。这个例子是在Ubuntu 20.04安装nginx完成的。
首先你需要编辑Linux hosts文件,添加域名与IP的映射记录。
你可运行命令echo "127.0.0.1 example.org" | sudo tee -a /etc/hosts
直接追加一条DNS记录/etc/hosts
文件。
然后创建以下Nginx配置文件,记得将nginx的配置包含到你Nginx的主配置文件。如果你不会配置Nginx。可以参考我们的教程如何在Ubuntu 20.04设置Nginx虚拟主机。
server {
listen 80;
server_name example.org;
root /var/www/test;
}
server {
listen *:443 ssl http2;
root /var/www/test;
server_name example.org;
ssl_certificate /home/myfreax/example.org.pem;
ssl_certificate_key /home/myfreax/example.org.pem;
}
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK