问题标签 [mkcert]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1954 浏览

kubernetes - 在 WSL2 中为本地开发环境生成证书

难以在与 WSL2 隔离的本地开发环境中安装证书。我在 macOS 和 Linux 中完成了完全相同的步骤,并且问题为零。

步骤如下:

毕竟,您可以localhost在 Linux 和 macOS 上导航到并查看它有一个证书……。

在 WSL2 中,即使没有错误,我也无法使证书正常工作,除非我describe使用了一些资源:

基本上说有些东西不存在,那里很清楚。

有关如何解决此问题的任何建议?

0 投票
0 回答
43 浏览

ssl - SSL 证书未加载

我遵循了一些教程并最终运行了这个命令:

给出输出:

然后我移动了它:

然后我编辑了 package.json:

(我想使用端口 80,因为 godaddy 会重定向到它。我可以稍后再处理,现在我只想解决 SSL 问题。)

--> 但我仍然收到消息“警告!潜在风险...网站不安全”

有什么我明显想念的吗?

0 投票
0 回答
181 浏览

docker - SSL 证书 - 由我的旧计算机提供 - Docker / Mkcert

我们有一个 Docker 堆栈,我们使用 mkcert 生成 SSL 证书以用于本地开发。

我最近切换到一台新计算机并再次执行生成 SSL 证书的过程,但我对新证书有问题:“交付者”部分显示我的旧计算机,而“交付给”部分显示我的新计算机。

当我尝试连接到本地开发 URL 时,我得到“NET::ERR_CERT_AUTHORITY_INVALID”。

这是我用来生成证书的命令:

这是从谷歌浏览器看到的证书:来自谷歌浏览器的 SSL 证书

您可以在此屏幕截图中看到“Délivré par”(由 / issuer 交付)和“Délivré à”(交付至)有 2 台不同的计算机。

以下是我为确保证书真正删除而执行的步骤:

  1. 在 Google Chrome 设置中,我进入了安全 -> 管理证书 -> 删除了对生成的证书的所有引用
  2. 在 Windows 中,Win+R -> inetcpl.cpl -> 内容选项卡 -> 清除 SSL 状态(删除 SSL 缓存)
  3. 在 Windows 中,Win+R -> MMC -> 删除与我的开发堆栈关联的根证书
  4. 重新启动计算机并重建 Docker 堆栈
  5. 在 Docker 中使用 mkcert 重新生成 SSL 证书

毕竟,我的旧计算机的发行者/交付仍然存在相同的问题,并且证书仍未在 Chrome 中验证。在切换计算机之前它工作正常,我的其他开发人员根本没有这个问题。

谢谢您的帮助!

0 投票
0 回答
295 浏览

symfony - Symfony CLI 服务器使用 mkcert 证书

我目前正在使用带有 react 和 webpack 的 Symfony 来构建应用程序。我使用 Symfony CLI 开发服务器。根据PWA Workshop的说明书,我想把这个应用程序变成一个渐进式 Web 应用程序 (PWA) 。但是,根据我收集的信息,移动测试等需要完全信任的 SSL 证书,建议使用mkcert(或者 Let'sEncrypt)。我已经按照流程在 Symfony CLI 服务器上启用了 TLS. 但是,生成的证书似乎是自签名的,并不是完全受信任的。有没有办法从 Symfony CLI 服务器命令行调用受信任的 mkcert 证书或在 Symfony 配置文件中引用它们,以便服务器使用它们而不是symfony server:ca:install命令生成的自签名证书?(mkcert 似乎会生成两个 .pem 文件,其他非 php 开发服务器,例如http-party/http-server可以直接从命令行调用它们。)我的解决方法是使用证书配置我的本地 apach2 服务器,但是我想继续使用 Symfony 服务器进行调试。

更新 我没有提到我的开发环境是 Windows 10 上的 WSL2。这似乎是让受信任的证书工作的问题。由于浏览器在 Windows 中运行而服务器在 WSL 中运行,因此 Windows 浏览器不接受证书。我目前针对在 WSL 上运行的 mkcert 和 apache2 的工作是:

  1. 在 WSL 和 Windows 上安装 mkcert,在 WSL 和 Windows 中运行mkcert -install
  2. 将 Windows 根证书从 Windows 中创建的受信任存储复制到 WSL 中创建的受信任存储。mkcert -CAROOT通过在各自的环境中运行,您可以在两种环境中找到这些商店,
  3. 根据 mkcert 的说明运行mkcert localhost 127.0.0.1并将证书对添加到某个文件夹中,
  4. 然后根据互联网上的说明配置 apache2 以使用 SSL 和 mkcert 证书对。

我在mkcert solution找到了这个解决方法。

然而,这个问题仍然存在于 Symfony 服务器。目前还不清楚证书(根证书或其他证书)在symfony server:ca:install运行时安装在哪里,以及是否有办法制作这些证书的副本,以便服务器可以在 WSL 中运行并且 Windows 会接受它们。此外,Symfony 文档并没有说明这些证书是否只是自签名的,或者它们是否是像 mkcert 这样的受信任的根证书。

0 投票
1 回答
522 浏览

node.js - mkcert 生成的 ssl 证书不是一个完整的链

我正在使用mkcert为 localhost 生成自签名证书。

这适用于浏览器,但如果我尝试并从节点获取,我会收到此错误:

FetchError:对 https://localhost:52882/ 的请求失败,原因:无法验证第一个证书

我认为这是因为 mkcert 没有创建完整的链。

我已经通过使用NODE_EXTRA_CA_CERTS环境变量解决了这个问题。

我知道有process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";核方法,但我很想知道如果没有这些方法如何解决这个问题。

0 投票
1 回答
467 浏览

reactjs - 如何设置本地环境以在 https 上运行

我正在尝试通过 https 本地运行我的 React 应用程序。我已按照本教程的步骤进行操作,已mkcert正确安装,我的项目的根目录当前如下所示:

我的 package.json 文件如下所示:

然而,当我运行 npm start 时,我收到此错误:

'HTTPS' is not recognized as an internal or external command, operable program or batch file.

.env我还尝试在根目录中创建一个文件并添加如下变量:

但是,当我以这种方式运行应用程序时,我会收到一条警告说我的连接不安全。

我花时间搜索错误,到目前为止仍然无法找到解决方案。

0 投票
1 回答
98 浏览

android - Android Firefox 不断提示接受 mkcert 创建的 SSL 证书的风险

在我的开发笔记本电脑中,我使用 mkcert 安装了 SSL 证书。在所有桌面浏览器中都能正常工作。他们甚至没有提示接受“风险”并继续。但是在同一个 LAN 上的我的 Android 手机中(在 dns 中有 dev 子域),我从 Chrome 和 Firefox 中都得到了这个提示。这是可以接受的,除了每次我将焦点返回到应用程序时 Firefox 都会提示。对于需要在所有浏览器中测试的每个代码更改,必须单击两个额外的按钮(高级然后接受风险并继续),这很烦人。

有没有办法让 Android Firefox 永久接受证书或任何其他解决方案?

0 投票
1 回答
1309 浏览

linux - mkcert 证书不适用于本地 IP 地址

我正在尝试将我的应用程序转换为 PWA,我需要在我的 raspberrypi 4 上的 localhost 上使用 https,并且可以使用 LAN 上的 192.168.0.2 访问

证书似乎无效,我不明白我错过了什么。

所有命令均以 root 用户身份执行,所有步骤均来自 GitHub 官方页面

网站可用/hiker.conf

铬截图 在此处输入图像描述

0 投票
1 回答
140 浏览

ca - MKcert - 错误:添加证书:添加证书失败:访问被拒绝

最近我在 Windows 系统上安装 mkcert 时开始遇到问题。我已经通过使用管理员权限来做到这一点。

PS C:\WINDOWS\system32> mkcert -install 错误:添加证书:添加证书失败:访问被拒绝。

请帮我解决这个问题。

0 投票
1 回答
428 浏览

apache - 需要帮助在 WSL2 上设置 HTTPS

我真的需要一些帮助来配置 WSL 以使用 HTTPS 为本地 Apache 站点工作。我花了 2 天时间试图让它工作。我使用了以下文章作为参考(以及其他类似文章):

https://jitheshkt.medium.com/enable-ssl-on-wsl2-apache-windows-10-bcdfef71024a

https://gist.github.com/dennisameling/8317b9dc6b7d971860a4797c64f16eaf(准备 SSL 证书部分)

mkcert 安装在 Windows 和 WSL2 上

我在 Power Shell (Admin) 中运行以下命令在 C:\Users\YOUR_WINDOWS_USERNAME\AppData\Local\mkcert 中创建证书:

这似乎有效,因为我可以在文件夹中看到证书。

但是,在 Power Shell 中运行时,以下内容对我不起作用:

因此,我改为在 WSL 终端中执行此操作:

为了做到这一点,WSL mkcert 将使用 Windows 端的证书,并且它似乎可以工作,就像我现在输入以下终端命令一样:

我得到:

但是有些事情不起作用,我绝对不理解。

例如,在完成上述操作之后,现在 https://localhost 可以工作了(我必须单击接受不受信任的证书的风险)。当我尚未修改 default-ssl.conf 文件时,我不明白为什么这会起作用。以下是该文件的内容:

这样,它就会加载默认的 Apache 页面。但是,如果我尝试将 DocumentRoot 更改为站点文件存储在 Windows 端的位置:

如果我在浏览器中加载 https://localhost,我会得到“连接失败:没有这样的文件或目录”(为了确定,这个文件夹中有一个 index.php 和 index.html 文件)。

知道为什么它无法从该 DocumentRoot 位置加载文件吗?

如果我还将以下内容更改为证书和密钥的正确位置,也无济于事:

当我重新启动 Apache 时,它​​加载正常,所以我知道我正确地输入了目录路径和存在的文件夹。

但我真正的目标是能够使用带有自定义域的 HTTPS 版本的网站,例如https://example.com

我运行以下命令来创建我的证书和密钥文件并确认它们已创建:

我配置了我的 Windows 主机文件:

并且启用了以下 example.com.conf:

并且启用了以下 example.com.ssl.conf:

如果我尝试在浏览器中加载 example.com 或https://example.com,在 Chrome 中我会收到“无法访问此站点/ERR_CONNECTION_REFUSED”错误,而在 Firefox 中则是“无法连接”错误。

任何人都可以在这方面提供的任何帮助将不胜感激。老实说,我正要拔掉我不存在的头发(我是秃头),然后把我的头穿过我的显示器。

请注意以下文件路径:YOUR_WINDOWS_USERNAME 只是我正在使用的占位符,并且我在路径中输入了正确的 Windows 用户名。

** 更新 **

将主机文件更改为:

并将 DocumentRoot(和所有其他文件路径)更改为 WSL 方面的位置:

已允许加载 Apache2/Ubuntu 默认页面。但它没有加载 public_html 文件夹中 index.php 文件的实际内容。如果我查看https://example.com/index.php,我会收到 Not Found 错误。

谢谢你的帮助!