【发布时间】:2017-09-04 18:14:56
【问题描述】:
我们在办公室的 Linux 服务器上托管我们的公共网站。上周我用 CA 签名的证书替换了自签名的 SSL 证书。在我这样做之后,我无法在我的家庭 Linux 服务器上使用像 gcloud 或 gsutil 这样的 Google Cloud SDK 实用程序。我得到一个以
结尾的回溯File "/usr/lib64/python2.7/ssl.py", line 272, in match_hostname %
(hostname, ', '.join(map(repr, dnsnames))))
ssl.CertificateError:
hostname 'metadata.google.internal' doesn't match either of
'www.rubgrp.com', 'rubgrp.com'
虽然 rubgrp.com 是公司域名,但在我的家庭 SDK 配置中没有引用它 - 云帐户与我的个人 gmail.com 地址相关联。为了验证问题是否与更改办公室服务器证书有关,我重新安装了自签名证书,错误消失了;放回签名证书后它又出现了。
我尝试在办公室的 Linux 机器上使用相同版本的操作系统和 Python 安装 SDK,并且成功了。我尝试在家里的 Mac 上安装它,它工作正常。但是当我在家庭 Linux 机器上设置另一个用户时,它失败了。它就像在他的家庭服务器上缓存了一些东西,但我找不到什么或在哪里。
谢谢!
【问题讨论】:
-
您的家庭 linux 上的 /etc/hosts 或 dns 解析设置是否搞砸了?如果您声称在您的 sdk 设置中没有对 rubgrp.com 的引用,那么您的办公室 linux 服务器会被联系到,这很奇怪。我假设“www.rubgrp.com”和“rubgrp.com”是您的办公室服务器提供的 CA 颁发的证书中的主题 CN 和主题备用名称。
-
我认为这是其中很大一部分。不确定这是否符合标准,但家庭解析器设置确实包含 rubgrp.com 的默认域。所以我可以看到,在查找 metadata.google.internal 时,它会添加 rubgrp.com,检索新证书,然后找到元数据......不包括在内。但是为什么办公室中配置相同的服务器不做同样的事情。我不是不同意,我很困惑——我觉得我错过了其中的一些关键部分。
标签: python linux ssl google-cloud-platform google-cloud-sdk