您是否厌倦了在本地开发项目中使用不受信任的 SSL 证书?维护自己的证书颁发机构(CA)是一个痛苦的事情,这过程中需要用到神秘的程序和命令。在本指南中,我将向您展示一种在没有 CA 的情况下在本地开发计算机上使用受信任 SSL 证书的简单方法。

mkcert 是一个简单的零配置工具,由 Filippo Valsorda 使用 Go 编写,用于制作具有您喜欢的任何名称的本地可信开发证书,无需任何配置。这将对您有所帮助,因为无法从可信证书颁发机构获取没有有效 DNS 记录的本地名称的证书。让我们深入研究安装和使用 mkcert

项目地址:https://github.com/FiloSottile/mkcert

如果你想申请一个线上可以使用免费证书,也可以参考「手把手教你免费申请支持通配符的 SSL 证书」和「Let's Encrypt 免费通配符 SSL 证书申请教程」两篇教程。

在不同平台下安装 mkcert

  1. 如何在 Ubuntu / Debian 上安装 mkcert

要在任何 Ubuntu 或 Debian 系统上安装 mkcert,首先要安装 certutil 依赖项:

$ sudo apt-get updatesudo apt install wget libnss3-tools

安装完成后,下载 mkcert 来自 Github 的二进制包。检查 mkcert 发布页面以获取最新版本。在撰写本文时,最新版本是。v1.4.0

$ export VER="v1.4.0" && wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/${VER}/mkcert-${VER}-linux-amd64

下载文件后,使文件可执行并将二进制文件放在 /usr/local/bin 下面。

$ chmod +x  mkcert
$ sudo mv mkcert /usr/local/bin

  1. 如何在 CentOS / Fedora 上安装 mkcert

在 CentOS 和 Fedora 上安装 mkcert 类似于 Ubuntu / Debian 安装,您只需要先安装 nss-tools工具。

安装 nss-tools

$ sudo yum install nss-tools

安装完成后,下载 mkcert 二进制包,就像安装 Ubuntu 一样。

$ export VER="v1.4.0" && wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/${VER}/mkcert-${VER}-linux-amd64

下载文件后,使文件可执行并将二进制文件放在 /usr/local/bin 下面。

$ chmod +x  mkcert
$ sudo mv mkcert /usr/local/bin

  1. 如何在 Arch Linux 上安装 mkcert

对于 Arch Linux,您可以使用上述过程或使用 AUR 安装 mkcert。对于通过 AUR 安装你需要使用 AUR 助手,推荐 yayyay 是 Arch Linux / Manjaro 的最佳 AUR 助手。

安装 yay 后,使用以下命令安装 mkcert

$ yay -S --noconfirm --needed go
$ yay -S --noconfirm --needed mkcert

  1. 如何在 macOS 上安装 mkcert

对于 macOS 用户,您可以下载二进制包或者从中 brew 安装 mkcert

$ brew install mkcert
$ brew install nss # if you use Firefox

对于二进制安装:

$ export VER="v1.4.0" && wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/${VER}/mkcert-${VER}-linux-amd64

下载文件后,使文件可执行并将二进制文件放在 /usr/local/bin 下面。

$ chmod +x  mkcert
$ sudo mv mkcert /usr/local/bin

如何使用 mkcert 生成本地受信任的 SSL 证书

  1. 生成本地受信任的 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( JAVA_HOME )

要获取 mkcert 的帮助页面,请传递该选项 --help

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.

$ 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 证书。例如,我将生成一个对以下名称有效的新证书。

"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

  1. 测试 mkcert 证书

现在让我们使用一个简单的 Nginx 配置文件测试 mkcert 证书。这个例子是在 Ubuntu 16.04 系统上完成的。

  1. 安装一个 Nginx 服务器

$ sudo apt-get install nginx

  1. 创建一个简单的网页

$ echo 'Hello Hi-Linux.com !' > /var/www/test/index.html

  1. 配置一个简单的 HTTPS 服务器

$ 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;
}

  1. 确保您的 /etc/hosts 文件包含已使用域名的记录。

$ cat/etc/hosts  127.0.0.1 myapp.net
127.0.0.1 mydomain.com

打开浏览器并使用提供的域名,你应该得到一个带有绿色安全图标的地址栏,至此创建一个受信任的本地 SSL 证书就完成了。

来源:myfreax

原文:http://t.cn/AiRQ3uFJ

题图:来自谷歌图片搜索

版权:本文版权归原作者所有

投稿:欢迎投稿,邮箱: editor@hi-linux.com

你可能还喜欢

点击下方图片即可阅读

可能是东半球最好的 Curl 学习指南,强烈建议收藏!

教你秒建受信任的本地 SSL 证书,彻底解决开发测试环境的无效证书警告烦恼!...相关推荐

  1. 使用mkcert工具生成受信任的本地SSL证书

    使用mkcert工具生成受信任的本地SSL证书 官方文档:https://github.com/FiloSottile/mkcert#mkcert 参考文章链接:本地https快速解决方案--mkce ...

  2. win7html文件,教你win7浏览器打不开本地html文件格式的解决方法

    最近有用户反馈,遇到了html文件打不开,一直显示主页而不是html页面,其实很大部分是浏览器设置问题.有什么办法可以解决?针对此疑问,下面小编教你win7浏览器打不开本地html文件格式的解决方法. ...

  3. 阅读软件打不开HTML,教你win7浏览器打不开本地html文件格式的解决方法

    最近有用户反馈,遇到了html文件打不开,一直显示主页而不是html页面,其实很大部分是浏览器设置问题.有什么办法可以解决?针对此疑问,下面小编教你win7浏览器打不开本地html文件格式的解决方法. ...

  4. intellij服务器证书不受信任,ssl证书不受信任怎么办?ssl证书不受信任解决方案有什么?...

    随之愈来愈多的ssl证书错误的状况出現,大伙儿都是有ssl证书不受信任怎么办这类的难题,而且对这种难题很头痛,下边将带大伙儿解析一下ssl证书不受信任的缘故及解决方案. 一.ssl证书不会受到信任是什 ...

  5. 谷歌浏览器安全证书不受信任_使用SSL证书https协议,完美解决谷歌Chrome浏览器“不安全”...

    传统的http协议,存在被监听.劫持等安全风险,故众多浏览器都已经http协议标记为"不安全".尤其是谷歌Chrome浏览器对"不安全"的提示最为明显,360浏 ...

  6. mkcert制作信任的本地 SSL 证书

    一: windows10上创建本地ssl证书 按照官方文档的介绍首先去下载Chocolatey(win平台的包管理器,类似npm吧),这里注意它不是一个exe可执行程序. 以超级管理员身份启动cmd ...

  7. 微信/企业微信-本地(MAC)VUE项目调用JS-SDK,开发测试环境搭建

    调用微信SDK前置条件 根据官方文档,前端在使用微信的接口前要先进行配置,配置信息得从后端获取,后端在计算signature时需要前端传入当前页面的URL,开发者要在公众平台设置JS SDK安全域名, ...

  8. 微信搭建本地开发测试环境

    ##准备工作 1.ngrok,微信的接口有一些是被动的接收从微信服务器发送的消息的,所以需要提供一个域名给微信服务器,ngrok可以将本机的指定端口,映射到一个域名.花生壳什么的也可以. 2.微信we ...

  9. mac 打不开 不受信任_管理不受信任的外键

    mac 打不开 不受信任 介绍 (Introduction) Intended audience 目标听众 This article is intended for application devel ...

最新文章

  1. linux tree命令 树结构显示目录文件
  2. haproxy对mysql集群进行负载均衡
  3. Winform开发框架重构总结
  4. GridView RadioButton 解决办法(一) -- 实现单选
  5. Android实战:手把手实现“捧腹网”APP(三)-----UI实现,逻辑实现
  6. 关于EFCore线程内唯一
  7. android开发之后端云bmob的使用
  8. luci编程 openwrt_openwrt开源系统LUCI配置界面
  9. 手机越贵打车越贵?教授打车800次总结出规律,律师:属于违法欺诈行为
  10. 4月第3周业务风控关注 | 文化部再次审查直播和游戏产品,已下架4939款直播应用...
  11. archman linux教程,Archman GNU/Linux 2020-01 发布,基于Arch的Xfce桌面发行版
  12. 电脑基本快捷键,你知道多少?
  13. html ui 下拉列表,html - 如何给样式Material-ui选择字段下拉菜单?
  14. 现代操作系统的基本特性(2)
  15. 【情商 为什么情商比智商更重要】阅读笔记
  16. 深度置信网络 Deep belief network
  17. 网吧服务器系统介绍,网吧服务器系统
  18. 真爱,就要失去自己?
  19. 10进制数转16进制
  20. 【类和对象】深入浅出类和对象

热门文章

  1. 深入浅出 - Android系统移植与平台开发(十)- Android编译系统与定制Android平台系统
  2. 2008年中国电子商务十大时刻
  3. python足球_使用Python抓取欧洲足球联赛数据
  4. 标准USB/Mini-USB接口,及OTG
  5. 画图神器-drawio(配合markdown使用更佳)
  6. 使用eclipse遇到问题:the-package-collides-with-a-type
  7. linux--Flex and Bison
  8. 企业级架构之LNMP
  9. 一个悄然崛起的国产软件
  10. 咸鱼前端—html初识