mirror of https://gitee.com/openkylin/libvirt.git
conf: Introduce migrate_tls_x509_cert_dir
Add a new TLS X.509 certificate type - "migrate". This will handle the creation of a TLS certificate capability (and possibly repository) to be used for migrations. Similar to chardev's, credentials will be handled via a libvirt secrets; however, unlike chardev's enablement and usage will be via a CLI flag instead of a conf flag and a domain XML attribute. The migrations using the *x509_verify flag require the client-cert.pem and client-key.pem files to be present in the TLS directory - so let's also be sure to note that in the qemu.conf file. Signed-off-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
parent
e3ff84edf5
commit
1415121a5e
|
@ -54,6 +54,10 @@ module Libvirtd_qemu =
|
|||
| bool_entry "chardev_tls_x509_verify"
|
||||
| str_entry "chardev_tls_x509_secret_uuid"
|
||||
|
||||
let migrate_entry = str_entry "migrate_tls_x509_cert_dir"
|
||||
| bool_entry "migrate_tls_x509_verify"
|
||||
| str_entry "migrate_tls_x509_secret_uuid"
|
||||
|
||||
let nogfx_entry = bool_entry "nographics_allow_host_audio"
|
||||
|
||||
let remote_display_entry = int_entry "remote_display_port_min"
|
||||
|
@ -116,6 +120,7 @@ module Libvirtd_qemu =
|
|||
| vnc_entry
|
||||
| spice_entry
|
||||
| chardev_entry
|
||||
| migrate_entry
|
||||
| nogfx_entry
|
||||
| remote_display_entry
|
||||
| security_entry
|
||||
|
|
|
@ -21,11 +21,16 @@
|
|||
# an encrypted channel.
|
||||
#
|
||||
# It is possible to use x509 certificates for authentication too, by
|
||||
# issuing a x509 certificate to every client who needs to connect.
|
||||
# issuing an x509 certificate to every client who needs to connect.
|
||||
#
|
||||
# Enabling this option will reject any client who does not have a
|
||||
# certificate signed by the CA in /etc/pki/qemu/ca-cert.pem
|
||||
#
|
||||
# The default_tls_x509_cert_dir directory must also contain
|
||||
#
|
||||
# client-cert.pem - the client certificate signed with the ca-cert.pem
|
||||
# client-key.pem - the client private key
|
||||
#
|
||||
#default_tls_x509_verify = 1
|
||||
|
||||
#
|
||||
|
@ -238,6 +243,43 @@
|
|||
#chardev_tls_x509_secret_uuid = "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
|
||||
# In order to override the default TLS certificate location for migration
|
||||
# certificates, supply a valid path to the certificate directory. If the
|
||||
# provided path does not exist then the default_tls_x509_cert_dir path
|
||||
# will be used. Once/if a default certificate is enabled/defined, migration
|
||||
# will then be able to use the certificate via migration API flags.
|
||||
#
|
||||
#migrate_tls_x509_cert_dir = "/etc/pki/libvirt-migrate"
|
||||
|
||||
|
||||
# The default TLS configuration only uses certificates for the server
|
||||
# allowing the client to verify the server's identity and establish
|
||||
# an encrypted channel.
|
||||
#
|
||||
# It is possible to use x509 certificates for authentication too, by
|
||||
# issuing an x509 certificate to every client who needs to connect.
|
||||
#
|
||||
# Enabling this option will reject any client that does not have a
|
||||
# ca-cert.pem certificate signed by the CA in the migrate_tls_x509_cert_dir
|
||||
# (or default_tls_x509_cert_dir) as well as the corresponding client-*.pem
|
||||
# files described in default_tls_x509_cert_dir.
|
||||
#
|
||||
# If this option is not supplied, it will be set to the value of
|
||||
# "default_tls_x509_verify".
|
||||
#
|
||||
#migrate_tls_x509_verify = 1
|
||||
|
||||
|
||||
# Uncomment and use the following option to override the default secret
|
||||
# UUID provided in the default_tls_x509_secret_uuid parameter.
|
||||
#
|
||||
# NB This default all-zeros UUID will not work. Replace it with the
|
||||
# output from the UUID for the TLS secret from a 'virsh secret-list'
|
||||
# command and then uncomment the entry
|
||||
#
|
||||
#migrate_tls_x509_secret_uuid = "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
|
||||
# By default, if no graphical front end is configured, libvirt will disable
|
||||
# QEMU audio output since directly talking to alsa/pulseaudio may not work
|
||||
# with various security settings. If you know what you're doing, enable
|
||||
|
|
|
@ -280,6 +280,7 @@ virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool privileged)
|
|||
SET_TLS_X509_CERT_DEFAULT(vnc);
|
||||
SET_TLS_X509_CERT_DEFAULT(spice);
|
||||
SET_TLS_X509_CERT_DEFAULT(chardev);
|
||||
SET_TLS_X509_CERT_DEFAULT(migrate);
|
||||
|
||||
#undef SET_TLS_X509_CERT_DEFAULT
|
||||
|
||||
|
@ -395,6 +396,9 @@ static void virQEMUDriverConfigDispose(void *obj)
|
|||
VIR_FREE(cfg->chardevTLSx509certdir);
|
||||
VIR_FREE(cfg->chardevTLSx509secretUUID);
|
||||
|
||||
VIR_FREE(cfg->migrateTLSx509certdir);
|
||||
VIR_FREE(cfg->migrateTLSx509secretUUID);
|
||||
|
||||
while (cfg->nhugetlbfs) {
|
||||
cfg->nhugetlbfs--;
|
||||
VIR_FREE(cfg->hugetlbfs[cfg->nhugetlbfs].mnt_dir);
|
||||
|
@ -556,6 +560,8 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr cfg,
|
|||
goto cleanup;
|
||||
GET_CONFIG_TLS_CERTINFO(chardev);
|
||||
|
||||
GET_CONFIG_TLS_CERTINFO(migrate);
|
||||
|
||||
#undef GET_CONFIG_TLS_CERTINFO
|
||||
|
||||
if (virConfGetValueUInt(conf, "remote_websocket_port_min", &cfg->webSocketPortMin) < 0)
|
||||
|
|
|
@ -137,6 +137,10 @@ struct _virQEMUDriverConfig {
|
|||
bool chardevTLSx509verify;
|
||||
char *chardevTLSx509secretUUID;
|
||||
|
||||
char *migrateTLSx509certdir;
|
||||
bool migrateTLSx509verify;
|
||||
char *migrateTLSx509secretUUID;
|
||||
|
||||
unsigned int remotePortMin;
|
||||
unsigned int remotePortMax;
|
||||
|
||||
|
|
|
@ -25,6 +25,9 @@ module Test_libvirtd_qemu =
|
|||
{ "chardev_tls_x509_cert_dir" = "/etc/pki/libvirt-chardev" }
|
||||
{ "chardev_tls_x509_verify" = "1" }
|
||||
{ "chardev_tls_x509_secret_uuid" = "00000000-0000-0000-0000-000000000000" }
|
||||
{ "migrate_tls_x509_cert_dir" = "/etc/pki/libvirt-migrate" }
|
||||
{ "migrate_tls_x509_verify" = "1" }
|
||||
{ "migrate_tls_x509_secret_uuid" = "00000000-0000-0000-0000-000000000000" }
|
||||
{ "nographics_allow_host_audio" = "1" }
|
||||
{ "remote_display_port_min" = "5900" }
|
||||
{ "remote_display_port_max" = "65535" }
|
||||
|
|
Loading…
Reference in New Issue