Dear libvirt Users,

I'm seeking guidance on configuring TLS with libvirt to achieve perfect forward 
secrecy (PFS). While I followed the tutorial on setting up TLS with libvirt 
from the project wiki [1], I encountered an error when bringing up the legacy 
monolithic libvirt daemon.

The error message, "Certificate /etc/pki/libvirt/servercert.pem usage does not 
permit key encipherment," appeared even though I declared the "encryption_key" 
field in the certtool template file when generating the server certificate. 
Moreover, when I inspected the generated certificate with certtool, I 
discovered that it only had a "Digital signature" entry under X509v3 key usage. 
The deficiency in "Key Encipherment" usage could result from the key type 
specifications when generating the private key with the command "certtool 
--generate-privkey --key-type=ed25519 --curve=Ed25519 --sec-param=ultra > 
/etc/pki/libvirt/private/serverkey.pem". I prefer using elliptic-curve 
cryptography, specifically curve25519, over RSA, which the tutorial employs.

Although a digital signature-only certificate can still perform Diffie–Hellman 
exchanges with ECDSA, it cannot encrypt client-generated pre-master secrets. 
Nonetheless, a TLS session can still be established without pre-master secrets, 
avoiding session key leakage even if the decryption key is compromised in the 
future. This fulfills the PFS requirement, and I believe that a certificate 
without "Key Encipherment" usage contributes to the system's overall security.

Based on my understanding, I am seeking any insights or suggestions on whether 
there is a way to suppress the "certificate usage does not permit key 
encipherment" error and allow the legacy monolithic libvirt daemon to proceed.

Thanks,
Tommy.J.Mairo

[1] https://wiki.libvirt.org/TLSSetup.html
_______________________________________________
Users mailing list -- users@lists.libvirt.org
To unsubscribe send an email to users-le...@lists.libvirt.org

Reply via email to