Libvirt и TLS игнорируют настройки файла CA - PullRequest
1 голос
/ 02 мая 2020

У меня есть 3 гипервизора KVM / libvirt, с которыми я хотел бы общаться друг с другом.
У меня есть свой собственный CA и подчиненный CA.

Я создал сертификаты для каждой машины, и каждый из них /etc/libvirt/libvirtd.conf имеет следующие:

listen_tls = 1
key_file = "/etc/pki/tls/private/serverX_libvirt_key.pem"
cert_file = "/etc/pki/tls/certs/serverX_crt.pem"
ca_file = "/etc/pki/tls/certs/CA_chain.pem"

Файл CA_chain.pem, очевидно, содержит сертификаты цепочки. (Int-CA & CA). Файл ключа и сертификаты проверены правильно.

openssl verify -CAfile /etc/pki/tls/certs/CA_chain.pem /etc/pki/tls/certs//etc/pki/tls/certs/serverX_crt.pem
/etc/pki/tls/certs/serverX_crt.pem: OK

Сертификаты клиентов определены в документации следующим образом:

ls -lrt /etc/pki/libvirt/private/clientkey.pem
-r--------. 1 root root 3243 Apr  30 09:45 /etc/pki/libvirt/private/clientkey.pem

И, конечно, это проверено нашим ЦС:

openssl verify -CAfile /etc/pki/tls/certs/CA_chain.pem /etc/pki/libvirt/clientcert.pem
/etc/pki/libvirt/clientcert.pem: OK
ls -lrt /els -lrt /etc/pki/libvirt/clientcert.pem
-rw-r--r--. 1 root root 2297 Apr  30 10:07 /etc/pki/libvirt/clientcert.pemtc/pki/libvirt/private/clientkey.pem

Однако я не могу подключиться к гипервизорам!

Используя vir sh, я получаю следующую ошибку:

[root@serverX ~]# virsh -c qemu+tls://serverY list
error: failed to connect to the hypervisor
error: Cannot read CA certificate '/etc/pki/CA/cacert.pem': No such file or directory

Права доступа к сертификату верны, SE Linux правильно. Но очевидно, что-то не хватает, и я не могу подключиться к серверам.

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 03 мая 2020

ОК, я нашел это.

Кажется, проблема в том, что у клиента libvirt нет опции для TLS. Таким образом, мы вынуждены использовать местоположения по умолчанию. И хотя я использовал расположение по умолчанию для закрытого ключа и сертификата, я не сделал то же самое для CA.

Итак, я создал ссылку от /etc/pki/tls/certs/CA_chain.pem до /etc/pki/CA/cacert.pem и теперь все в порядке.

mkdir -p /etc/pki/CA/
ln -s /etc/pki/tls/certs/CA_chain.pem /etc/pki/CA/cacert.pem
...