在本地使用 letsencrypt 生成证书

Generate a certificate with letsencrypt locally

我是生成证书和使用 letsencrypt 的新手,所以我不确定这是一个愚蠢的问题还是可能的。

我想使用 node.js 创建一个小示例 Web 应用程序。我想测试如何实现https,以及如何获得适当的证书。

所以我尝试使用letsencrypt。但是好像不行。

我正在使用我的本地计算机 (win10) 并且正在克隆 git。之后我尝试执行命令 ./letsencrypt-auto 但 windows 不会将脚本识别为命令。

如何在我的 win10 机器上本地使用 letsencrypt,其中没有网络服务器(通常)运行。

letsencrypt-autoonly works with Apache on Debian-based OSes (for now)。目前无法在 Windows 上使用它。

也就是说,人们正在努力。您可能会发现 this project 很有趣。 (免责声明:我与它没有任何关系,我自己也没有尝试过。)

或者您可以查看 - https://github.com/minio/concert 使用 golang 构建,您可以很自然地获得 windows 二进制文件。

安装

编译需要安装golang concert.

$ go get -u github.com/minio/concert

如何运行?

默认在 certs 目录中生成证书。

$ sudo concert gen <EMAIL> <DOMAIN>

在自定义目录中生成证书。

$ sudo concert gen --dir my-certs-dir <EMAIL> <DOMAIN>

默认更新 certs 目录中的证书。

$ sudo concert renew <EMAIL>

在自定义目录中生成证书。

$ sudo concert renew --dir my-certs-dir <EMAIL>

运行 自动更新的服务器。

$ sudo concert server <EMAIL> <DOMAIN>

或者,您可以使用 ngrok 公开您的本地端口 80 并通过 subdomain.ngrok.io 上的安全隧道使其可供全世界使用。也可以将该域作为您自己域名的 CNAME 传递。

您所要做的就是:

  • 使用 https://ngrok.com/ 创建免费帐户它适用于所有操作系统。
  • 运行 ngrok http 80 并记下您的 subdomain.ngrok.io
  • 将上述子域添加到您的 /etc/hosts 作为 127.0.0.1 subdomain.ngrok.io。这样您就可以使用 SSL 在本地访问该域,而 ngrok 将确保 Let's Encrypt 能够通过 Internet 访问它。

编辑:请注意,此方法可能无法可靠地工作。 Let's encrypt 每个注册域有 20 个证书 rate limit。这意味着每周可以为所有 ngrok 用户生成总共 20 个证书。

免责声明:我与 ngrok.io 没有任何关系。