mkcert es una herramienta sencilla para crear certificados de desarrollo confiables localmente. No requiere configuración.
$ 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 ::1 Created 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" ✅
El uso de certificados de autoridades certificadoras (CA) reales para el desarrollo puede ser peligroso o imposible (para hosts como example.test
, localhost
o 127.0.0.1
), pero los certificados autofirmados provocan errores de confianza. Administrar su propia CA es la mejor solución, pero generalmente implica comandos arcanos, conocimientos especializados y pasos manuales.
mkcert crea e instala automáticamente una CA local en el almacén raíz del sistema y genera certificados de confianza local. mkcert no configura automáticamente los servidores para usar los certificados, aunque eso depende de usted.
Advertencia : el archivo
rootCA-key.pem
que mkcert genera automáticamente brinda poder total para interceptar solicitudes seguras de su máquina. No lo compartas.
En macOS, use Homebrew
brew install mkcert brew install nss # if you use Firefox
o MacPorts.
sudo port selfupdate sudo port install mkcert sudo port install nss # if you use Firefox
En Linux, primero instale certutil
.
sudo apt install libnss3-tools -or- sudo yum install nss-tools -or- sudo pacman -S nss -or- sudo zypper install mozilla-nss-tools
Luego puedes instalar usando Homebrew en Linux.
brew install mkcert
o compilar desde el código fuente (requiere Go 1.13+)
git clone https://github.com/FiloSottile/mkcert && cd mkcert go build -ldflags "-X main.Version=$(git describe --tags)"
o utilice los binarios prediseñados.
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
Para los usuarios de Arch Linux, mkcert
está disponible en el repositorio oficial de Arch Linux.
sudo pacman -Syu mkcert
En Windows, use Chocolatey
choco install mkcert
o usar Scoop
scoop bucket add extras scoop install mkcert
o compílelo desde el código fuente (requiere Go 1.10+), o use los archivos binarios prediseñados.
Si tiene problemas de permisos, intente ejecutar mkcert
como administrador.
mkcert admite los siguientes almacenes raíz:
tienda del sistema macOS
tienda del sistema windows
Variantes de Linux que proporcionan
update-ca-trust
(Fedora, RHEL, CentOS) o
update-ca-certificates
(Ubuntu, Debian, OpenSUSE, SLES) o
trust
(Arco)
Firefox (solo macOS y Linux)
Cromo y cromo
Java (cuando se establece JAVA_HOME
)
Para instalar solo la CA raíz local en un subconjunto de ellas, puede configurar la variable de entorno TRUST_STORES
en una lista separada por comas. Las opciones son: "system", "java" y "nss" (incluye Firefox).
-cert-file FILE, -key-file FILE, -p12-file FILE Customize the output paths. -client Generate a certificate for client authentication. -ecdsa Generate a certificate with an ECDSA key. -pkcs12 Generate a ".p12" PKCS #12 file, also know as a ".pfx" file, containing certificate and key for legacy applications. -csr CSR Generate a certificate based on the supplied CSR. Conflicts with all other flags and arguments except -install and -cert-file.
Nota: Debes colocar estas opciones antes de la lista de nombres de dominio.
mkcert -key-file key.pem -cert-file cert.pem example.com *.example.com
mkcert genera automáticamente un certificado S/MIME si uno de los nombres proporcionados es una dirección de correo electrónico.
mkcert [email protected]
Para que los certificados sean confiables en dispositivos móviles, deberá instalar la CA raíz. Es el archivo rootCA.pem
en la carpeta impresa por mkcert -CAROOT
.
En iOS, puede usar AirDrop, enviarse la CA por correo electrónico o enviarla desde un servidor HTTP. Después de abrirlo, debe instalar el perfil en Configuración > Perfil descargado y luego habilitar la confianza total en él.
Para Android, deberá instalar la CA y luego habilitar las raíces de usuario en la versión de desarrollo de su aplicación. Vea esta respuesta de StackOverflow.
Node no utiliza el almacén raíz del sistema, por lo que no aceptará certificados mkcert automáticamente. En su lugar, deberá configurar la variable de entorno NODE_EXTRA_CA_CERTS
.
export NODE_EXTRA_CA_CERTS="$(mkcert -CAROOT)/rootCA.pem"
El certificado de CA y su clave se almacenan en una carpeta de datos de la aplicación en la casa del usuario. Por lo general, no tiene que preocuparse por eso, ya que la instalación es automática, pero la ubicación la imprime mkcert -CAROOT
.
Si desea administrar CA separadas, puede usar la variable de entorno $CAROOT
para configurar la carpeta donde mkcert colocará y buscará los archivos de CA locales.
La instalación en el almacén de confianza no requiere la clave de CA, por lo que puede exportar el certificado de CA y utilizar mkcert para instalarlo en otras máquinas.
Busque el archivo rootCA.pem
en mkcert -CAROOT
copiarlo a una máquina diferente
establezca $CAROOT
en su directorio
ejecutar mkcert -install
Recuerde que mkcert está destinado a fines de desarrollo, no de producción, por lo que no debe usarse en las máquinas de los usuarios finales y que no debe exportar ni compartir rootCA-key.pem
.