我的 CentOS 7 服务器位于 AWS 私有云(公司网络)中,无法连接到某些站点。经过一番努力,我设法将问题缩小到以下问题。
- 以下内部网站无法访问(公共 CA 的 SSL)
curl -v https://git.company.com
返回,
About to connect() to git.company.com port 443 (#0)
Trying 10.62.124.6...
Connected to git.company.com (10.62.124.6) port 443 (#0)
Initializing NSS with certpath: sql:/etc/pki/nssdb
CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
- 但以下内部网站有效(通过公共 CA 提供 SSL)
curl -v https://alm.company.com
返回
About to connect() to alm.company.com port 443 (#0)
Trying 10.64.167.137...
Connected to alm.company.com (10.64.167.137) port 443 (#0)
Initializing NSS with certpath: sql:/etc/pki/nssdb
CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
SSL connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
...
...
...
Accept: */*
这些都是受同一公共 CA 信任的内部站点。
如何进一步调试?我遇到了一些解决方案,他们要求将公司安装到服务器中(虽然我想知道为什么一个站点可以工作而另一个站点却不能),但不确定如何正确安装此证书。
有人可以帮忙吗?
谢谢您的帮助。
答案1
您可以使用curl -k ...
它来让它忽略证书异常。
或者您可以使用curl --cacert <CA certificate>
它来提供您公司的 CA 证书。
或者您可以添加您公司的 CA 证书/etc/pki/tls/certs/
并在那里运行,make
以使其在整个系统范围内可用。
啊,要检索公司根 CA,请使用以下命令:openssl s_client -connect git.company.com:443 -showcerts
- 这将转储链中的所有证书。