使用 gcloud 的负载均衡器 SSL 证书

标签 ssl google-cloud-platform ssl-certificate load-balancing gcloud

问题:当我使用 UI 将新的 SSL 证书添加到目标 HTTPS 代理时,我需要输入证书、私钥和证书链。在命令行中,它只要求证书和私钥。我错过了什么吗?

enter image description here enter image description here

最佳答案

证书小结

当您签署一个证书请求 (scr) 时,您基本上是在签署一个公钥以及一些有用的信息,这些信息将公钥链接到域、组织或实体,这些域、组织或实体应该是唯一所有者私钥。

但是你需要签署这个公钥以确保你可以检查没有人修改过它,但是你用哪个 key 来签署呢?如果您可以使用相应的私钥,那么每个人都可以拥有每个域的所有权,因此您需要使用第三方可信实体的私钥来签署证书。

当然,由于已签名的证书,您信任该实体,但其他实体依此类推,直到您找到 self-signed 的证书。 .

这是结束无限循环的唯一方法,否则这个自签名证书标识一个根证书颁发机构 (CA),您在浏览器中有一个它们的列表。

您也可以自行签署自己的证书,但由于它不在浏览器的默认列表中,他们会看到一条警告,指出您的网站不可信任。

所以你应该提供证书、链和私钥来保护你的流量和显示你的身份,所以他们为什么要求不同的信息?

基本上他们要求相同但格式不同:

  • App Engine他们要求“PEM 编码的 X.509 公钥证书”和 key ,从文档中您可以注意到该证书是“您的串联 SSL 证书”因此是整个链

  • gcloud command需要证书和 key ,证书又是“证书链的长度不能超过 5 个证书。链必须至少包含一个中间证书。” 又是整个链。

  • 来自 the console您将需要提供相同的信息,但要分开,您的证书是“公钥证书”,然后是链组成的购买中间和根,最后是私钥

但是我同意这是误导,并且应该始终以相同的方式询问相同的信息。

例如对于 google.com 完整的链是:

-----BEGIN CERTIFICATE-----
MIIEKDCCAxCgAwIBAgIQAQAhJYiw+lmnd+8Fe2Yn3zANBgkqhkiG9w0BAQsFADBC
MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMS
R2VvVHJ1c3QgR2xvYmFsIENBMB4XDTE3MDUyMjExMzIzN1oXDTE4MTIzMTIzNTk1
OVowSTELMAkGA1UEBhMCVVMxEzARBgNVBAoTCkdvb2dsZSBJbmMxJTAjBgNVBAMT
HEdvb2dsZSBJbnRlcm5ldCBBdXRob3JpdHkgRzIwggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQCcKgR3XNhQkToGo4Lg2FBIvIk/8RlwGohGfuCPxfGJziHu
Wv5hDbcyRImgdAtTT1WkzoJile7rWV/G4QWAEsRelD+8W0g49FP3JOb7kekVxM/0
Uw30SvyfVN59vqBrb4fA0FAfKDADQNoIc1Fsf/86PKc3Bo69SxEE630k3ub5/DFx
+5TVYPMuSq9C0svqxGoassxT3RVLix/IGWEfzZ2oPmMrhDVpZYTIGcVGIvhTlb7j
gEoQxirsupcgEcc5mRAEoPBhepUljE5SdeK27QjKFPzOImqzTs9GA5eXA37Asd57
r0Uzz7o+cbfe9CUlwg01iZ2d+w4ReYkeN8WvjnJpAgMBAAGjggERMIIBDTAfBgNV
HSMEGDAWgBTAephojYn7qwVkDBF9qn1luMrMTjAdBgNVHQ4EFgQUSt0GFhu89mi1
dvWBtrtiGrpagS8wDgYDVR0PAQH/BAQDAgEGMC4GCCsGAQUFBwEBBCIwIDAeBggr
BgEFBQcwAYYSaHR0cDovL2cuc3ltY2QuY29tMBIGA1UdEwEB/wQIMAYBAf8CAQAw
NQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2cuc3ltY2IuY29tL2NybHMvZ3RnbG9i
YWwuY3JsMCEGA1UdIAQaMBgwDAYKKwYBBAHWeQIFATAIBgZngQwBAgIwHQYDVR0l
BBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA0GCSqGSIb3DQEBCwUAA4IBAQDKSeWs
12Rkd1u+cfrP9B4jx5ppY1Rf60zWGSgjZGaOHMeHgGRfBIsmr5jfCnC8vBk97nsz
qX+99AXUcLsFJnnqmseYuQcZZTTMPOk/xQH6bwx+23pwXEz+LQDwyr4tjrSogPsB
E4jLnD/lu3fKOmc2887VJwJyQ6C9bgLxRwVxPgFZ6RGeGvOED4Cmong1L7bHon8X
fOGLVq7uZ4hRJzBgpWJSwzfVO+qFKgE4h6LPcK2kesnE58rF2rwjMvL+GMJ74N87
L9TQEOaWTPtEtyFkDbkAlDASJodYmDkFOA/MgkgMCkdm7r+0X8T/cKjhf4t5K7hl
MqO5tzHpCvX2HzLc
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG
EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg
R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9
9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq
fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv
iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU
1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+
bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW
MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA
ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
-----END CERTIFICATE-----

第一个是公钥证书,第二个是链,因为没有中间证书,也是根证书。

您可以解码证书,例如 here .

关于使用 gcloud 的负载均衡器 SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49363620/

相关文章:

java - 使用自签名证书(包括中间 CA)部署 Spring Boot 应用程序

ssl - 将 P12 证书导入 NSS 数据库(使用别名)

wcf - 要求使用 WCF 的 SSL 会导致 "The HTTP request was forbidden with client authentication scheme ' 匿名“错误?

azure - 如何将 pfx 证书安装到 Azure 以便辅助角色可以访问第三方 Web 服务?

google-cloud-platform - 如何使用GCP服务帐户用户角色创建资源?

python - 使用适用于 Python 的 Google Cloud 客户端库从存储桶下载文件

subdomain - 我们可以仅使用 1 个带有 SSL 的子域来运行多个 Facebook 应用程序吗?

javax.net.ssl.SSLPeerUnverifiedException : Certificate for <sub. app.domain> 不匹配任何主题备用名称 : [*. app.domain]]

Android SSL 内部 - 实际实现在哪里?

hadoop - 如何在谷歌云实例上运行 hortonworks 沙箱环境?