我已使用自签名证书和自己的证书颁发机构安装了 Landscape。我的浏览器中安装了 CA 证书,并且可以访问 Landscape 网站:https://landscape.sahfos.dev/没有 TLS 问题。
在客户端计算机 geoserver.sahfos.dev 上,我将 CA 证书安装到 /etc/ssl/certs/ 中,并进行哈希处理,然后
$ openssl s_client -CApath /etc/ssl/certs/ -connect landscape.sahfos.dev:443
...
Verify return code: 0 (ok)
有效,
$curl https://landscape.sahfos.dev/message-system
Landscape message server
然而,
$ sudo landscape-config --computer-title "Geoserver.sahfos.dev" \
--account-name standalone \
--url https://landscape.sahfos.dev/message-system \
--ping-url http://landscape.sahfos.dev/ping --silent
失败。
$ sudo tail -n 12 /var/log/landscape/broker.log
2016-05-05 16:48:41,817 INFO [MainThread] Starting urgent message exchange with https://landscape.sahfos.dev/message-system.
2016-05-05 16:48:41,822 ERROR [PoolThread-twisted.internet.reactor-1] Error contacting the server at https://landscape.sahfos.dev/message-system.
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/landscape/broker/transport.py", line 71, in exchange
message_api)
File "/usr/lib/python2.7/dist-packages/landscape/broker/transport.py", line 45, in _curl
headers=headers, cainfo=self._pubkey, curl=curl))
File "/usr/lib/python2.7/dist-packages/landscape/lib/fetch.py", line 109, in fetch
raise PyCurlError(e.args[0], e.args[1])
PyCurlError: Error 77:
2016-05-05 16:48:41,822 INFO [MainThread] Message exchange failed.
2016-05-05 16:48:41,823 INFO [MainThread] Message exchange completed in 0.01s.
错误 77 表示证书链存在问题,但 curl 本身没有问题。
有人知道为什么客户端无法与服务器建立安全链接吗?
答案1
没关系。我正在尝试用困难的方式做到这一点。只需添加证书文件作品/etc/landscape/client.conf
:
ssl_public_key = /etc/landscape/server.pem
如同https://help.landscape.canonical.com/LDS/QuickstartDeployment16.03,而不是像建议的那样使用 base64 编码添加证书本身https://help.landscape.canonical.com/LDS/Installation(这也建议使用不存在的bootstrap.conf
文件。