Получение ошибок при попытке прикрепить токен ua
Я пытаюсь включить ESM на своем VPS-сервере 16.04, но получаю сообщения об ошибках при попытке подключения к каноническому серверу. Ошибка, которую я получаю после запуска команды ssh
# sudo ua attach C122.....является:
Failed to connect to authentication server
Check your Internet connection and try again.
Failed to access URL: https://contracts.canonical.com/v1/resources?kernel=4.4.0-1160.21.1.vz7.174.13&series=xenial&architecture=amd64
Cannot verify certificate of server
Please check your openssl configuration.
где-то читал, что может быть
iptablesблокирую, но у меня есть
OUTGOINGна
ACCEPT ALL. И когда я пингую https://canonical.com , я получаю нормальный ответ.
У кого-нибудь есть идеи?
Спасибо за помощь, @andrew-lowther. Я сделал, как вы предложили. Я не мог опубликовать этот длинный результат в комментарии к вашему ответу.
ca-сертификаты были уже последней версии. Тест на завиток также выглядит нормально:
* Connected to contracts.canonical.com (91.189.92.69) port 443 (#0)
* found 129 certificates in /etc/ssl/certs/ca-certificates.crt
* found 520 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* SSL connection using TLS1.2 / ECDHE_RSA_AES_256_GCM_SHA384
* server certificate verification OK
* server certificate status verification SKIPPED
* common name: contracts.canonical.com (matched)
* server certificate expiration date OK
* server certificate activation date OK
* certificate public key: RSA
* certificate version: #3
* subject: CN=contracts.canonical.com
* start date: Fri, 16 Jul 2021 18:50:43 GMT
* expire date: Thu, 14 Oct 2021 18:50:41 GMT
* issuer: C=US,O=Let's Encrypt,CN=R3
* compression: NULL
* ALPN, server accepted to use http/1.1
> GET / HTTP/1.1
> Host: contracts.canonical.com
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 404 Not Found
< Server: openresty/1.15.8.2
< Date: Sat, 24 Jul 2021 10:10:20 GMT
< Content-Type: text/plain; charset=utf-8
< Content-Length: 19
< Connection: keep-alive
< Strict-Transport-Security: max-age=15724800; includeSubDomains
< X-Content-Type-Options: nosniff
< X-Trace-Id: 05087364-13c5-426f-9a59-99c7384f2dde
<
404 page not found
* Connection #0 to host contracts.canonical.com left intact`
Это дает вам другие подсказки?
Спасибо еще раз.
2 ответа
Сообщение об ошибке указывает, что подключение разрешено, но ваш VPS-сервер не доверяет сертификату сервера Canonical.
Хороший первый шаг — убедиться, что корневые сертификаты на вашем VPS-сервере обновлены.
apt-get update
apt-get install ca-certificates
Использование — это простой способ проверки. Если эта команда завершается ошибкой с выводом, который включает
SSL certificate problemтогда это подтвердит выпуск сертификата.
curl -vs https://contracts.canonical.com
Вы также можете использовать
-kчтобы игнорировать ошибки сертификата и узнать больше о том, какой сертификат получает сервер VPS.
curl -vsk https://contracts.canonical.com -o /dev/null
РЕДАКТИРОВАТЬ
Ваш
curlвывод предполагает, что сертификат сервера Canonical является доверенным. Ваш VPS-сервер может подключиться к серверу Canonical, и ничто не мешает трафику.
Это еще несколько команд, которые вы можете попробовать, хотя обычно их не нужно запускать вручную.
update-ca-certificates
c_rehash /etc/ssl/certs
Когда я
straceа
uaкоманда, похоже, специально ищет файл
/usr/lib/ssl/certs/4042bcee.0. Вы также можете убедиться, что он существует и является символической ссылкой на корневой сертификат. Эта символическая ссылка создается
c_rehashкоманда.
# ls -l /usr/lib/ssl/certs/4042bcee.0
lrwxrwxrwx 1 root root 16 Feb 19 14:09 /usr/lib/ssl/certs/4042bcee.0 -> ISRG_Root_X1.pem
РЕДАКТИРОВАТЬ 2
Судя по вашему комментарию
/usr/lib/ssl/каталог может быть перепутан. Он должен содержать несколько симлинков
$ ls -l /usr/lib/ssl/
total 4
lrwxrwxrwx 1 root root 14 Apr 15 2016 certs -> /etc/ssl/certs
drwxr-xr-x 2 root root 4096 Feb 19 14:10 misc
lrwxrwxrwx 1 root root 20 Feb 17 10:21 openssl.cnf -> /etc/ssl/openssl.cnf
lrwxrwxrwx 1 root root 16 Apr 15 2016 private -> /etc/ssl/private
Если кто-то приходит сюда с неудачной проверкой сертификата при попытке
curl -vs https://contracts.canonical.comначните с инструкции здесь
Показанные там команды:
cd /usr/share/ca-certificates
sudo mkdir letsencrypt.org
cd letsencrypt.org/
wget "https://letsencrypt.org/certs/isrgrootx1.pem"
sudo update-ca-certificates
Это все еще не работало для меня. Видя здесь , что папка certs содержит символические ссылки на файлы сертификатов. Я скопировал файл в
etc/ssl/certsи создайте на него символическую ссылку. (Копирование, вероятно, было ненужным). Затем я запустил команду обновления сертификата, о которой упоминал @Andrew.
c_rehash /etc/ssl/certsкоторый сделал трюк.