簡體   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