【发布时间】:2018-11-30 08:30:50
【问题描述】:
我有一个使用 GRPC 的颤振应用程序(基于 dart)和一个 GoLang 服务器。
我想保护它,所以我尝试用certbot 设置Ngninx(我是新来的),但是机器人需要一个挑战,它连接到Web 服务(用于域)以获得一个http 响应,我的服务没有提供。可以在同一端口上同时运行 GRPC 和 HTTP 服务器,但我不明白如何为此设置 Nginx。
然后我尝试使用autocert 为我的服务本身设置 TLS,但是使用 acme 执行此操作需要相同的 Web 服务响应,否则我必须提供手动证书并跳过不安全验证,这在 dart 中目前不可用(只有两个选项可用secure 和insecure)。在本地测试 autocert 也无济于事,因为它甚至不会创建本地证书(至少对我而言)。
我还读到了一个需要 DNS TXT 记录的 DNS 质询,但我不确定它是否会要求我在每次续订时提供新的 TXT 记录。
无论如何,我很困惑如何继续前进。我将 GRPC 连接到实际的移动应用程序,并且在任何地方都没有找到很多关于此的教程或问题。我的 GoLang 服务器还与其他内部微服务交互,因此支持 TLS 也意味着重新部署所有其他启用了安全标志的服务。
任何关于我应该做些什么来保护我的 GRPC 与应用程序连接的帮助,将是惊人的!
相关文档:
- https://www.nginx.com/blog/nginx-1-13-10-grpc/
- https://godoc.org/golang.org/x/crypto/acme/autocert
- https://serverfault.com/questions/750902/how-to-use-lets-encrypt-dns-challenge-validation
- https://d3void.net/post/acme/
抱歉,如果这是一个愚蠢的问题,但我已经坚持了一周。
【问题讨论】: