问题标签 [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.
kubernetes - 在 WSL2 中为本地开发环境生成证书
难以在与 WSL2 隔离的本地开发环境中安装证书。我在 macOS 和 Linux 中完成了完全相同的步骤,并且问题为零。
步骤如下:
毕竟,您可以localhost
在 Linux 和 macOS 上导航到并查看它有一个证书……。
在 WSL2 中,即使没有错误,我也无法使证书正常工作,除非我describe
使用了一些资源:
基本上说有些东西不存在,那里很清楚。
有关如何解决此问题的任何建议?
ssl - SSL 证书未加载
我遵循了一些教程并最终运行了这个命令:
给出输出:
然后我移动了它:
然后我编辑了 package.json:
(我想使用端口 80,因为 godaddy 会重定向到它。我可以稍后再处理,现在我只想解决 SSL 问题。)
--> 但我仍然收到消息“警告!潜在风险...网站不安全”
有什么我明显想念的吗?
docker - SSL 证书 - 由我的旧计算机提供 - Docker / Mkcert
我们有一个 Docker 堆栈,我们使用 mkcert 生成 SSL 证书以用于本地开发。
我最近切换到一台新计算机并再次执行生成 SSL 证书的过程,但我对新证书有问题:“交付者”部分显示我的旧计算机,而“交付给”部分显示我的新计算机。
当我尝试连接到本地开发 URL 时,我得到“NET::ERR_CERT_AUTHORITY_INVALID”。
这是我用来生成证书的命令:
这是从谷歌浏览器看到的证书:来自谷歌浏览器的 SSL 证书
您可以在此屏幕截图中看到“Délivré par”(由 / issuer 交付)和“Délivré à”(交付至)有 2 台不同的计算机。
以下是我为确保证书真正删除而执行的步骤:
- 在 Google Chrome 设置中,我进入了安全 -> 管理证书 -> 删除了对生成的证书的所有引用
- 在 Windows 中,Win+R -> inetcpl.cpl -> 内容选项卡 -> 清除 SSL 状态(删除 SSL 缓存)
- 在 Windows 中,Win+R -> MMC -> 删除与我的开发堆栈关联的根证书
- 重新启动计算机并重建 Docker 堆栈
- 在 Docker 中使用 mkcert 重新生成 SSL 证书
毕竟,我的旧计算机的发行者/交付仍然存在相同的问题,并且证书仍未在 Chrome 中验证。在切换计算机之前它工作正常,我的其他开发人员根本没有这个问题。
谢谢您的帮助!
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 的工作是:
- 在 WSL 和 Windows 上安装 mkcert,在 WSL 和 Windows 中运行
mkcert -install
, - 将 Windows 根证书从 Windows 中创建的受信任存储复制到 WSL 中创建的受信任存储。
mkcert -CAROOT
通过在各自的环境中运行,您可以在两种环境中找到这些商店, - 根据 mkcert 的说明运行
mkcert localhost 127.0.0.1
并将证书对添加到某个文件夹中, - 然后根据互联网上的说明配置 apache2 以使用 SSL 和 mkcert 证书对。
我在mkcert solution找到了这个解决方法。
然而,这个问题仍然存在于 Symfony 服务器。目前还不清楚证书(根证书或其他证书)在symfony server:ca:install
运行时安装在哪里,以及是否有办法制作这些证书的副本,以便服务器可以在 WSL 中运行并且 Windows 会接受它们。此外,Symfony 文档并没有说明这些证书是否只是自签名的,或者它们是否是像 mkcert 这样的受信任的根证书。
node.js - mkcert 生成的 ssl 证书不是一个完整的链
我正在使用mkcert为 localhost 生成自签名证书。
这适用于浏览器,但如果我尝试并从节点获取,我会收到此错误:
FetchError:对 https://localhost:52882/ 的请求失败,原因:无法验证第一个证书
我认为这是因为 mkcert 没有创建完整的链。
我已经通过使用NODE_EXTRA_CA_CERTS
环境变量解决了这个问题。
我知道有process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
核方法,但我很想知道如果没有这些方法如何解决这个问题。
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
我还尝试在根目录中创建一个文件并添加如下变量:
但是,当我以这种方式运行应用程序时,我会收到一条警告说我的连接不安全。
我花时间搜索错误,到目前为止仍然无法找到解决方案。
android - Android Firefox 不断提示接受 mkcert 创建的 SSL 证书的风险
在我的开发笔记本电脑中,我使用 mkcert 安装了 SSL 证书。在所有桌面浏览器中都能正常工作。他们甚至没有提示接受“风险”并继续。但是在同一个 LAN 上的我的 Android 手机中(在 dns 中有 dev 子域),我从 Chrome 和 Firefox 中都得到了这个提示。这是可以接受的,除了每次我将焦点返回到应用程序时 Firefox 都会提示。对于需要在所有浏览器中测试的每个代码更改,必须单击两个额外的按钮(高级然后接受风险并继续),这很烦人。
有没有办法让 Android Firefox 永久接受证书或任何其他解决方案?
ca - MKcert - 错误:添加证书:添加证书失败:访问被拒绝
最近我在 Windows 系统上安装 mkcert 时开始遇到问题。我已经通过使用管理员权限来做到这一点。
PS C:\WINDOWS\system32> mkcert -install 错误:添加证书:添加证书失败:访问被拒绝。
请帮我解决这个问题。
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 错误。
谢谢你的帮助!