ssl - 如何生成证书签名请求 (CSR) 以在 GKE 中设置 TLS
问题描述
我在 GKE 中运行一项服务,并有一个用于设置 LTS 的入口。我已经尝试过我的自签名证书,我可以通过 https 协议访问我的网站。这看起来不错的样子。请注意,我已经有一个用于 Ingress 的静态 IP 和一个域名。
但是现在我要创建一个真实的证书并尝试创建一个 CSR 并将其发送到 CA,但是在阅读了这些帖子后我很困惑:
我有一些问题:
- Pod 的 DNS、Pod 的 Ip 和 Service 的 Ip 是什么?
- 我必须为 pod 和服务创建 DNS 吗?
- 我可以从本地 PC 生成 *.csr 文件吗?
- 如果我按照此链接https://kubernetes.io/docs/concepts/services-networking/ingress/#tls中的步骤操作,是否可以创建服务器证书身份验证
我想要的只是制作 *.crt 和 *.key 文件以在我的服务上设置 https。(我已经阅读了一些关于 Let's Encrypt 的博客文章,但我不想使用它)。
感谢您的阅读。
解决方案
让我们先回顾一下您的每个问题:
Pod 的 DNS、Pod 的 Ip 和 Service 的 Ip 是什么?
在集群中,每个 pod 都有自己的内部 IP 地址和 DNS 记录。服务也是如此。您可以在此处阅读Kubernetes 中的 DNS ,您可以在此处阅读有关 IP 地址的更多信息。
我必须为 pod 和服务创建 DNS 吗?
对于在集群中使用,它会自动为您处理好。如果您想公开一个 pod/服务并通过 DNS 记录从外部访问它,您必须在某处创建它,就像您为任何其他服务器/服务/其他东西所做的那样。
我可以从本地 PC 生成 *.csr 文件吗?
如果我按照这些步骤创建服务器证书身份验证...
对于 GKE 和 Ingress,可以通过两种不同的方式处理证书。您只需将证书添加到您的项目并告诉 Ingress 控制器使用它。在此页面中,您可以找到有关如何执行此操作的精彩说明,这里是在控制台中创建证书的页面。此页面还向您展示了如何使用机密来执行此操作,尽管我个人更喜欢使用属于我的项目的一部分的证书来增加可见性。
推荐阅读
- java - 如果 Java 子包不提供特殊的访问关系,它们会做什么?
- cytoscape - 在 Cytoscape 上将 GOslim 输入到 ClueGO
- flutter - 如何使用 Image Picker 获取图像的“真实”路径?
- spring-boot - S3AsyncClient - 删除授权标头
- javascript - Cancelling interval based on a promise result in Angular
- javascript - 使用 Django 时的 CSS 最佳实践
- ios - 关于在用户查询后将数据从 API 传递到视图控制器的问题 - Swift
- python - 角色慢慢地从地板上掉下来,而不是完全停下来
- android - Android Studio 4.0.1、Gradle 和 React Native:AndroidManifest.XML 存在时未找到
- prolog - 以 4 为底的回文