首页 > 其他分享 >[转]mkcert 使用指南:如何快速创建自签名 SSL 证书

[转]mkcert 使用指南:如何快速创建自签名 SSL 证书

时间:2024-03-07 15:48:57浏览次数:29  
标签:证书 192.168 SSL mkcert 128.134 使用指南 root localhost

原文地址:mkcert 使用指南:如何快速创建自签名 SSL 证书 - 知乎

我们平时在本地开发时,有时会要求通过 HTTPS 请求来访问。一个通用的做法是用 OpenSSL 生成自签证书,然后对 Web 服务进行配置。但 OpenSSL 的命令比较繁琐,参数也比较复杂,用起来不够方便。于是我找到了一个替代方案:mkcert,和大家分享下。

项目介绍

mkcert[1] 是一个用于生成本地自签名 SSL 证书的开源工具,项目基于 Golang 开发,可跨平台使用,不需要配置,支持多域名以及自动信任 CA。

准备工作

我准备模拟一个局域网内访问 Web 服务的场景,因此开始前需要:

  • 服务器:用于提供 Web 服务,安装 nginx 并开启 SSL,系统为 CentOS 7.8。
  • PC 端:一台 Win10 电脑,用于测试访问,与服务器处于同一局域网。

下载安装

首先,根据自己的系统,下载最新的二进制文件,这里我下载的版本为 v1.4.3:

[root@localhost ~]# wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64 

为二进制文件添加可执行权限,并移动到 $PATH 中:

[root@localhost ~]# chmod +x mkcert [root@localhost ~]# mv mkcert /usr/local/bin/ 

检查 mkcert 的版本:

[root@localhost ~]# mkcert -version v1.4.3 

如果版本显示正常,说明安装无误。接下来,我们看看 mkcert 是如何创建证书的。

使用说明

mkcert 生成证书的命令很简单,格式如下:

mkcert domain1 [domain2 [...]] 

多个域名/IP用空格分隔,一个自签名的证书可以这样创建:

[root@localhost ~]# mkcert 192.168.128.134 example.com localhost 127.0.0.1 ::1
Note: the local CA is not installed in the system trust store.
Note: the local CA is not installed in the Firefox and/or Chrome/Chromium trust store.
Run "mkcert -install" for certificates to be trusted automatically 

Created a new certificate valid for the following names
 - "192.168.128.134"
 - "example.com"
 - "localhost"
 - "127.0.0.1"
 - "::1"

The certificate is at "./192.168.128.134+4.pem" and the key at "./192.168.128.134+4-key.pem"

It will expire on 7 September 2023

在这个证书中,192.168.128.134 是服务器的内网地址。命令执行后会生成两个文件:192.168.128.134+4-key.pem 和 192.168.128.134+4.pem,前者是私钥,后者是证书。

由于服务器上已经装了 nginx,也配置了 SSL,所以在命令中可以加入 -cert-file 和 -key-file 参数,将文件直接生成到对应的目录里:

[root@localhost ~]# mkcert -cert-file /etc/nginx/ssl/server.crt -key-file /etc/nginx/ssl/server.key 192.168.128.134 example.com localhost 127.0.0.1 ::1 

启动 nginx 服务,然后从 PC 端访问 https://192.168.128.134 查看效果:

可以看到,浏览器访问到了页面,但连接是不安全的。而我们在本地开发时,可能会对连接的安全性有要求,那有没有办法建立安全的连接呢?

正如介绍所言,mkcert 支持自动信任 CA,所以只要安装好 CA 证书就能解决这个问题。

回到服务器,执行以下命令将 mkcert 的认证机构安装到服务器上:

[root@localhost ~]# mkcert -install 

CA 证书的位置可以通过以下命令查看:

[root@localhost ~]# mkcert -CAROOT /root/.local/share/mkcert 

该目录中有两个文件:rootCA-key.pem 和 rootCA.pem。将 rootCA.pem 复制到 PC 上,并将其后缀改为 .crt

双击 rootCA.crt,根据提示安装证书,步骤如下:

动图封面  

重启浏览器再次访问,可以看到连接已经变为安全:

写在最后

在这篇文章中,我们通过 mkcert 创建了自签名的 SSL 证书,并建立了安全的访问连接。与 OpenSSL 相比,mkcert 的使用更加简单,简化了在内网搭建 HTTPS 环境的复杂性。

参考

  1. ^mkcert https://github.com/FiloSottile/mkcert

标签:证书,192.168,SSL,mkcert,128.134,使用指南,root,localhost
From: https://www.cnblogs.com/dirgo/p/18059041

相关文章

  • 分组聚合不再难:Pandas groupby使用指南
    处理大量数据时,经常需要对数据进行分组和汇总,groupby为我们提供了一种简洁、高效的方式来实现这些操作,从而简化了数据分析的流程。1.分组聚合是什么分组是指根据一个或多个列的值将数据分成多个组,每个组包含具有相同键值(这里的键值即用来分组的列值)的数据行。聚合或者汇总则是......
  • 免费ssl证书,使用acme.sh,泛解析,阿里dns自动续期
    -阿里云注册用户,添加dns可编辑权限- curlhttps://get.acme.sh|[email protected] -注意大小写exportAli_Key="<key>"exportAli_Secret="<secret>" - 执行阿里自动dns cd~/.acme.sh/./acme.sh--issue--dnsdns_ali-dexample.com-......
  • python3.6.8 安装解决ssl问题
    https://www.cnblogs.com/mqxs/p/9103031.html#!/bin/bashecho"正在安装相关组件"yuminstall-yopenssl-develbzip2-develexpat-develgdbm-develreadline-develsqlite-develgcc-c++gccopenssl-develecho"下载安装包"wgethttps://www.python.org/ft......
  • httpsok-v1.8.0 SSL证书自动续签就应该这么简单
    ......
  • Class.getResource() 和 ClassLoader.getResource()用法
    idea中项目目录结构 importcom.xpp.app.Dog;importjava.net.URL;publicclassMain{publicstaticvoidmain(String[]args){//当参数不带/会默认从该类所在的包下找URLurl1=Dog.class.getResource("");//file:/D:/idea_Java_......
  • Centos 上python3 pip3安装报错:WARNING: pip is configured with locations that requ
    pip3安装报错:WARNING:pipisconfiguredwithlocationsthatrequireTLS/SSL,howeverthesslmoduleinPythonisnotavailable.在网上查一下原因是openssl版本不兼容导致,centos默认带的openssl版本太低,要升级openssl版本。openssl  下载地址:https://www.openssl.org/s......
  • 详解SSL证书系列(4)免费的SSL证书和收费的证书有什么区别
    上一篇介绍了如何选择SSL证书,更多地是从证书类型角度介绍的。SSL证书有免费和收费的,那么它们之间有什么区别呢?SSL证书免费和收费的主要区别体现在以下几个方面:1,验证类型免费SSL证书通常只有域名验证型(DVSSL证书),而付费SSL证书则包括域名验证型(DVSSL证书)、企业验证型(OVSSL......
  • [转]acme自动化---免费SSL证书申请并自动续期
    原文地址:acme自动化---免费SSL证书申请并自动续期_createnewordererror.le_orderfinalizenotfound-CSDN博客背景:各CA厂家都在缩短免费证书的有效时间,包括现在与阿里合作的,普遍只有90天,这样如果频繁手动申请更换就很繁琐,正好github上有一个star数很高的工具acme.sh,......
  • 在极狐GitLab 配置 SSL/https
    本文作者徐晓伟说明极狐GitLabhttps使用的是nginx实现的本文使用的域名是IP192.168.80.14(原因:如果使用域名,必须拥有这个域名的所有权,并增加解析才可以,要不然在Docker容器中,无法使用域名检出代码,因为根据域名找不到DNS记录)如果使用自己生成的证书,git检出代码、推送......
  • (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED
    爬数据的时候报错,一开始愣住了我以为我的骚操作太多网站给我封了,后来爬别的网站也是同样的报错,然后意识到不是被封了,然后各种在网上查资料,去更新python里的某个包,然后也是报错,我去更新pip也是报错,我以为是python出现问题了,最后翻到了这篇文章恍然大悟,https://www.cnblogs.com/Mich......