[转帖]mkcert

news/2024/9/25 8:29:41
https://github.com/FiloSottile/mkcert

 

mkcert is a simple tool for making locally-trusted development certificates. It requires no configuration.

$ 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 trust store (requires browser restart)! 🦊$ mkcert example.com "*.example.com" example.test localhost 127.0.0.1 ::1Created a new certificate valid for the following names 📜- "example.com"- "*.example.com"- "example.test"- "localhost"- "127.0.0.1"- "::1"The certificate is at "./example.com+5.pem" and the key at "./example.com+5-key.pem" ✅
 

Chrome and Firefox screenshot

Using certificates from real certificate authorities (CAs) for development can be dangerous or impossible (for hosts like example.testlocalhost or 127.0.0.1), but self-signed certificates cause trust errors. Managing your own CA is the best solution, but usually involves arcane commands, specialized knowledge and manual steps.

mkcert automatically creates and installs a local CA in the system root store, and generates locally-trusted certificates. mkcert does not automatically configure servers to use the certificates, though, that's up to you.

Installation

Warning: the rootCA-key.pem file that mkcert automatically generates gives complete power to intercept secure requests from your machine. Do not share it.

macOS

On macOS, use Homebrew

brew install mkcert
brew install nss # if you use Firefox
 

or MacPorts.

sudo port selfupdate
sudo port install mkcert
sudo port install nss # if you use Firefox
 

Linux

On Linux, first install certutil.

sudo apt install libnss3-tools-or-
sudo yum install nss-tools-or-
sudo pacman -S nss-or-
sudo zypper install mozilla-nss-tools
 

Then you can install using Homebrew on Linux

brew install mkcert
 

or build from source (requires Go 1.13+)

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

or use the pre-built binaries.

curl -JLO "https://dl.filippo.io/mkcert/latest?for=linux/amd64"
chmod +x mkcert-v*-linux-amd64
sudo cp mkcert-v*-linux-amd64 /usr/local/bin/mkcert
 

For Arch Linux users, mkcert is available on the official Arch Linux repository.

sudo pacman -Syu mkcert
 

Windows

On Windows, use Chocolatey

choco install mkcert
 

or use Scoop

scoop bucket add extras
scoop install mkcert
 

or build from source (requires Go 1.10+), or use the pre-built binaries.

If you're running into permission problems try running mkcert as an Administrator.

Supported root stores

mkcert supports the following root stores:

  • macOS system store
  • Windows system store
  • Linux variants that provide either
    • update-ca-trust (Fedora, RHEL, CentOS) or
    • update-ca-certificates (Ubuntu, Debian, OpenSUSE, SLES) or
    • trust (Arch)
  • Firefox (macOS and Linux only)
  • Chrome and Chromium
  • Java (when JAVA_HOME is set)

To only install the local root CA into a subset of them, you can set the TRUST_STORES environment variable to a comma-separated list. Options are: "system", "java" and "nss" (includes Firefox).

Advanced topics

Advanced options

	-cert-file FILE, -key-file FILE, -p12-file FILECustomize the output paths.-clientGenerate a certificate for client authentication.-ecdsaGenerate a certificate with an ECDSA key.-pkcs12Generate a ".p12" PKCS #12 file, also know as a ".pfx" file,containing certificate and key for legacy applications.-csr CSRGenerate a certificate based on the supplied CSR. Conflicts withall other flags and arguments except -install and -cert-file.
 

Note: You must place these options before the domain names list.

Example

mkcert -key-file key.pem -cert-file cert.pem example.com *.example.com
 

S/MIME

mkcert automatically generates an S/MIME certificate if one of the supplied names is an email address.

mkcert filippo@example.com
 

Mobile devices

For the certificates to be trusted on mobile devices, you will have to install the root CA. It's the rootCA.pem file in the folder printed by mkcert -CAROOT.

On iOS, you can either use AirDrop, email the CA to yourself, or serve it from an HTTP server. After opening it, you need to install the profile in Settings > Profile Downloaded and then enable full trust in it.

For Android, you will have to install the CA and then enable user roots in the development build of your app. See this StackOverflow answer.

Using the root with Node.js

Node does not use the system root store, so it won't accept mkcert certificates automatically. Instead, you will have to set the NODE_EXTRA_CA_CERTS environment variable.

export NODE_EXTRA_CA_CERTS="$(mkcert -CAROOT)/rootCA.pem"
 

Changing the location of the CA files

The CA certificate and its key are stored in an application data folder in the user home. You usually don't have to worry about it, as installation is automated, but the location is printed by mkcert -CAROOT.

If you want to manage separate CAs, you can use the environment variable $CAROOT to set the folder where mkcert will place and look for the local CA files.

Installing the CA on other systems

Installing in the trust store does not require the CA key, so you can export the CA certificate and use mkcert to install it in other machines.

  • Look for the rootCA.pem file in mkcert -CAROOT
  • copy it to a different machine
  • set $CAROOT to its directory
  • run mkcert -install

Remember that mkcert is meant for development purposes, not production, so it should not be used on end users' machines, and that you should not export or share rootCA-key.pem.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/30808.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

读人工智能时代与人类未来笔记01_重塑人类社会秩序

读人工智能时代与人类未来笔记01_重塑人类社会秩序1. AlphaZero 1.1. 2017年年底,由谷歌旗下DeepMind公司开发的人工智能程序AlphaZero击败了当时世界上最强大的国际象棋程序Stockfish 1.1.1. AlphaZero对Stockfish的百场战绩是28胜72平0负,可以说获…

[转帖]Nginx(四)虚拟主机

说明: 各个指令块在具体的应用场景再进行说明 一 虚拟主机 一个web服务里面就是一个独立的网站站点,这个站点对应独立的域名或者IP或者端口 特点:具有独立的程序及资源目录,可以独立的对外提供服务供用户访问! +++++++++++++++++++ 分割线 +++++++++++++++++++ 虚拟主机…

大吴雨逝键

。无需多言,

免杀初探

刚开始看点免杀的东西,做下笔记。0x00 概念 免杀是反病毒技术,指的是一种能使病毒木马免于被杀毒软件查杀的技术。免杀的最基本思想就是破坏特征,可以是特征码,也可以是行为特征,以这种思路修改病毒、木马的内容,来对抗杀软。 网上的开源测试项目在短时间内就会被安全厂商…

rancher安装教程

一、安装 docker 1. 创建 build.sh 文件,到 Linux下执行 #!/bin/bash# 检查Docker是否已经安装 if which docker > /dev/null; thenecho "Docker已经安装,开始卸载..."# 卸载Docker及其相关组件docker stop $(docker ps -aq)docker rm $(docker ps -aq)docker s…

软件设计师:计算机网络

网络设备物理层:中继器、集线器(多路中继器) 数据链路层:网桥、交换机(多端口的网桥) 网络层:路由器 应用层:网关广播域、冲突域13年后没考过协议簇 纯背IP、TCP、UDPIP(网络层)只提供无连接、不可靠的服务,效率高 差错检测、流量控制、拥塞控制、重发连接、可靠传输等服务…

标准IO和系统IO的相关知识积累

目录文件IO知识点补给1.FAT32与NTFS文件系统的区别?2.MMU的概述和作用3.简述Linux系统内核的作用4.了解Linux系统目录和文件夹的区别标准IO接口一、打开文件函数1:fopen二、读取数据(1)字符读取函数2:fgetc函数3:getc函数4:getchar(2)按行读取函数5:fgets函数6:gets…