問題タブ [cert-manager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
https - ドメインで HTTPS 暗号化が有効になっていません。注文証明書が完成していません
クラスター内のサービス アプリケーションに let'sencrypt CA によって署名された証明書を取得するために、kubernetes クラスターで cert-manager を使用しています。
以下の手順を提示された順序で実行しています。提示された動作を理解するために、プロセスの可能な限り詳細を提供したかった.
CustomResourceDefinition リソースを個別にインストールする
cert-manager 名前空間にラベルを付けてリソースの検証を無効にする
cert-manager Helm チャートをインストールする
- 起こりうる問題を回避するために、このガイドの手順を確認しました。すべての手順は問題ありません...
イングレスの作成
- kong-ingress-controllerを使用してイングレス プロセスを管理しています。
これは、私の外部 IP アドレスが kong-proxy によって与えられ、52.166.60.158
- この方法で初めてイングレスを作成しました。
- それを適用します。
- そして、私のイングレスはkong-ingress-controllerを取っています
ClusterIssuer の作成
- を作成します
ClusterIssuer
。Issuer を作成することもできますが、ClusterIssuer から始めました。最良の代替手段は何ですか? これは、主に名前空間の状況で、展開と将来の要件に依存します
- 適用する
- この ClusterIssuer は ACME letsencrypt サーバーに登録されました
以前に作成したイングレス リソースを変更する
- Let's Encrypt ステージング ClusterIssuer を作成したので、上記で作成した Ingress リソースを変更し、test1kongletsencrypt.possibilit.nl パスの TLS 暗号化を有効にして、以下を追加します。
certmanager.k8s.io/cluster-issuer: letsencrypt-staging
アノテーションを追加し、 letsencrypt-staging
ClusterIssuer という名前で作成されたシークレットを使用しますletsencrypt-staging
私たちの侵入はこのようにとどめられています:
- 適用する
このプロセスはイングレスで更新し、次の名前のイングレスを 1 つ作成します。cm-acme-http-solver-jr4fg
cm-acme-http-solver-jr4fg
侵入の詳細は次のとおりです。
kong-ingress-zcrm365
リソース イングレスの詳細は次のとおりです。
を使用しても、イングレスkong-ingress-controller
がletsencrypt-staging
デフォルトの名前空間に作成されていることがわかります。
letsencypt-staging 証明書には、次の詳細があります。
注文の発行が完了しておらず、OrderCreated
イベントで作成されただけであり、この証明書を作成してから 7 分経っても注文が完了していないため、証明書が正常に発行されていないことがわかります。
私に起こるもう1つのことは、lクラスター発行者とそれぞれの証明書letsencrypt-staging
によって作成されたシークレットには、次のものしかないということです:etsencrypt-staging
tls.key
私が理解しているように、letsencrypt証明書が注文を完了し、証明書が発行された場合、letsencrypt-staging
秘密には1つのtls.crtキーがあり、おそらく私letsencrypt-staging
は不透明ではなくtlsタイプになりますか?
- cert-manager ポッドのログを見ると、次の出力が表示されます。http チャレンジが実行されていないと思います。
このメッセージが表示されますNo existing HTTP01 challenge solver pod found for Certificate "default/letsencrypt-staging-2613163196-0"
これによると certmanager.k8s.io/acme-challenge-type: http01
、イングレスに注釈を追加することにしましkong-ingress-zcrm365
たが、何も起こりませんでした...イングレスは更新されましたが、それ以上は何も起こりませんでした。
このすべてのプロセスで、TLS 証明書が正常に発行されなかったこと、および HTTPS 暗号化が構成済みのドメイン test1kongletsencrypt.possibilit.nl でアクティブになっていないことが確認されました。
これにより、letsencrypt-staging 証明書に がStatus:False
あり、注文作成イベントが完了して発行されません。
署名され、letsencrypt CA によって正常に発行され、https 暗号化が有効になるようにするにはどうすればよいですか? これらのログ メッセージはどうなっていますか?
letsencrypt-staging 環境にはテスト証明書しかなく、これらは一種の「偽の証明書」であり、Chrome/Firefox ブラウザーなどの一部のクライアントは証明書の発行者を信頼していない可能性があると聞いたことがあります...
これが、ドメインで https 暗号化を有効にできない理由ですか? 肯定的な場合、ステージング環境から本番環境に変更する必要がありますか?
この質問では、それについて話す人もいますが、次のことを強調しています。
ステージング環境は、クライアントが正常に動作し、チャレンジ、証明書を生成できることをテストするためだけに使用する必要があります
私の場合、ステージング環境ではまだ http チャレンジは生成されません。:(