web-dev-qa-db-ja.com

Google Cloud Compute EngineロードバランサーのLetsencryptのセットアップ方法

ロードバランサーを自動スケーリングインスタンステンプレートと組み合わせて使用​​するように、Google Cloud Projectをセットアップしました。現在、インスタンスグループには1つのインスタンスしかありません。

ドメイン名がロードバランサーのIPを正常に参照しています。これらの手順までは、すべてが正常に機能しています。

次に、このプロジェクトのSSLをセットアップします。 Letsencryptサービスでこれを実行したいのですが、これを設定しようとしても成功しません。

Google Cloud Engineのロードバランサーウィンドウには、以前に作成した証明書をGoogle Cloud Shellでロードバランサーフロントエンドにセッ​​トアップするオプションがあります。残念ながら、Google Cloud Shellでのみ.csrおよび.keyファイルを作成できます。さらに、安全でないSSL証明書を作成して.certファイルを取得できますが、letsencryptを使用して安全なSSL証明書ファイルを作成したいと思います。 Letsencryptサービスでは、コマンドを実行したコマンドラインインターフェースからドメインに直接アクセスする必要があります。これがおそらく、ドメイン名を取得できないことを示すエラーが表示される理由です。

Google Cloudを使用してロードバランサーにLetsencrypt証明書をインストールする方法を探しています。これを直接インストールする代わりに、letsencryptで.certファイルを手動で作成する方法はありますか?そうでない場合、.csrおよび.keyファイルから.certファイルを作成する別の方法またはサービスがありますか?

13
Lennard Deurman

sslforfree.com を使用できます。これはLetsEncryptを呼び出し、ダウンロード用のキーを提供します。また、証明書を更新するように通知することもできます。 (現在、Google LBで証明書を自動更新する方法はありません)

5
danqing

certbot を使用できます

証明書のみを作成する方法の例を次に示します

$ ./certbot-auto certonly --standalone --email [email protected] -d example.com -d www.example.com
3

Google Compute Engine上でKubernetesを使用する場合、適切なソリューションは cert-manager です。これは kube-lego の後継です。どちらもLet's EncryptからKubernetes Ingressリソースの証明書を自動的に要求できます。

機能

  • この場合の新しい証明書の必要性を認識します:
    • 証明書が存在しません
    • 既存の証明書にはすべてのドメイン名が含まれていません
    • 既存の証明書の有効期限が切れているか、有効期限が近づいています(オプションLEGO_MINIMUM_VALIDITYを参照)
    • 既存の証明書は解析不能、無効、または秘密鍵と一致しません
  • Let's Encryptのユーザーアカウント(秘密キーを含む)を作成し、Kubernetesシークレットに保存します(シークレット名はLEGO_SECRET_NAMEで構成可能)
  • Let's Encryptから不足している証明書を取得し、HTTP-01チャレンジでリクエストを承認します
  • 特定のKubernetesオブジェクト(Services、Ingress)にHTTP-01チャレンジが成功するための権利構成が含まれていることを確認します
  • 単純な展開の公式Kubernetes Helmチャート。

GCEの段階的なチュートリアル 利用可能

2
Max Desiatov

目標を達成するための良い方法は、クラウド機能+クラウドスケジューラ+ https://github.com/bloomapi/letsencrypt-gcloud-balancer

0
Frutik