繁体   English   中英

使用Golang在Nginx后面运行的GRPC服务的TLS

[英]TLS for GRPC service running behind Nginx using Golang

我有一个使用GRPC的flutter应用程序(基于飞镖)和GoLang服务器。

我想保护它,所以我尝试建立Ngninxcertbot (我是新在此),但机器人需要在其连接到Web服务(域)的HTTP响应一个挑战,我的服务没有按不给。 可以在同一端口上同时运行GRPC和HTTP服务器,但是我不明白如何为此设置Nginx

然后,我尝试使用autocert为我的服务本身设置TLS,但是使用acme进行此操作需要相同的Web服务响应,而没有该操作,我必须提供手动证书并跳过不安全的验证,这在dart中暂时不可用(只有两个选项) secureinsecure )。 在本地测试自动autocert也无济于事,因为它甚至不创建本地证书(至少对我而言)。

我还读到有关DNS挑战的信息,该挑战需要DNS TXT记录,但是我不确定是否会要求我在每次续订时都提出新的TXT记录。

无论如何,我对如何继续前进感到困惑。 我将GRPC连接到实际的移动应用程序,却在任何地方都找不到很多关于此的教程或问题。 我的GoLang服务器还与其他内部微服务进行交互,因此使其支持TLS还意味着在启用安全标记的情况下重新部署所有其他服务。

关于如何保护我的GRPC与应用程序的连接的任何帮助,都将是惊人的!

相关文档:

抱歉,这是一个愚蠢的问题,但是我已经坚持了一个星期。

只是发布我最终为设置所做的事情。 Nginx确实支持1.3.10+版的GRPC,但是需要大量的手动工作和cron作业来自动更新证书,并且缺少有关如何操作的文档。

我最终使用了Traefik ,我记录了整个过程以及为什么我在这里的博客文章中选择了Traefik

简而言之,Traefik允许更简单的设置和非常详细的GRPC文档入门。 另一个优点是它在docker本身内部运行,因此可以轻松地在Mac上测试与服务器上部署的版本相同的版本。 它在包装盒中提供了自动证书更新,并且带有DNS挑战,我可以轻松地验证域。

样本TOML文件,用于反向代理端的TLS终止,GRPC和常规REST服务,支持http (适用于旧版应用程序)和https

defaultEntryPoints = ["http", "https"]
logLevel = "INFO"
[traefikLog]
[accessLog]
  filePath = "/var/log/access.log"
  format = "json"
[entryPoints]
  [entryPoints.http]
  address = ":80"
  [entryPoints.https]
  address = ":443"
    [entryPoints.https.tls]
[api]
[file]
[acme]
email = "admin@example.com"
storage = "acme.json"
entryPoint = "https"
acmeLogging = true
  [acme.dnsChallenge]
    provider = "gcloud"
  [[acme.domains]]
    main = "*.example.com"
    sans = ["www.example.com"]
[backends]
  [backends.foo]
    [backends.foo.servers.server1]
    url = "h2c://127.0.0.1:3000"
  [backends.bar]
    [backends.bar.servers.server1]
    url = "http://127.0.0.1:3001"
[frontends]
  [frontends.foo]
  backend = "foo"
    [frontends.foo.routes.server1]
    rule = "Host:foo.example.com"
  passHostHeader = true
  passTLSCert = false
  [frontends.bar]
  backend = "bar"
    [frontends.bar.routes.server1]
    rule = "Host:bar.example.com"
  passHostHeader = true
  passTLSCert = false

唯一的问题是弄清楚提供商( dnsChallenge )的Google Cloud设置,如果是dnsChallenge ,则很难找到和设置! 在此处阅读有关使用GRPC配置traefik的更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM