OpenStack Libvirt TLS配置指南

OpenStack环境中,Libvirt默认采用TCP方式,会监听16509端口。这种方式是不安全的,因此建议采用TLS安全连接的方式。配置TLS最重要的步骤,是证书的生成及管理。证书的生成可以在任意节点进行(OpenStack集群内节点,或非OpenStack集群节点均可,对应详细步骤中的步骤1-4)。

证书生成主要分为以下几个步骤

  • 生成中央证书颁发机构证书。只需生成一次,所有节点的服务端证书及客户端证书,均基于此生成。
  • 生成服务端证书及私钥。每个计算节点均需要配置与该计算节点对应的服务端证书及私钥,需生成多次。
  • 生成客户端证书及私钥。每个计算节点均需要配置与该计算节点对应的客户端证书及私钥,需生成多次。
  • 证书分发。需将中央证书颁发机构证书、与计算节点对应的服务端证书与私钥、与计算节点对应的客户端证书与私钥,分别复制到对应的计算节点目录上。

详细流程

1. 安装证书生成工具

yum install gnutls-utils

2. 创建中央证书颁发机构证书,用于签署为每个计算节点创建的证书(只需执行一次)

(1) 创建模板

cat certificate_authority_template.info
cn = cmss
ca
cert_signing_key
expiration_days = 7000

(2) 生成中央证书颁发机构证书的私钥文件

(umask 277 && certtool --generate-privkey > certificate_authority_key.pem) 

(3) 使用(1)中模板及(2)中私钥,生成中央证书颁发机构证书

certtool --generate-self-signed \
            --template certificate_authority_template.info \
            --load-privkey certificate_authority_key.pem \
            --outfile certificate_authority_certificate.pem

3. 为每个计算节点生成服务端证书 (多个计算节点,则执行多次)

(1)创建计算节点服务端证书信息模板(如果是多个节点,则为每个计算节点创建一个模板,cn值为节点主机名)

cat node1_server.info
organization = cmss
cn = co-dev-node1
tls_www_server
encryption_key
signing_key

(2) 生成服务端证书私钥

(umask 277 && certtool --generate-privkey > node1_server_key.pem)

(3) 生成服务端证书

certtool --generate-certificate --template node1_server.info --load-privkey node1_server_key.pem --load-ca-certificate certificate_authority_certificate.pem --load-ca-privkey certificate_authority_key.pem --outfile node1_server_certificate.pem

4. 为每个计算节点生成客户端证书(多个计算节点,则执行多次)

(1) 创建计算节点服务端证书信息模板(如果是多个节点,则为每个计算节点创建一个模板,cn值为节点主机名)

cat node1_client.info
country = CN
state = Jiangsu
locality = Suzhou
organization = cmss
cn = co-dev-node1
tls_www_client
encryption_key
signing_key

(2) 生成客户端证书私钥

(umask 277 && certtool --generate-privkey > node1_client_key.pem)

(3) 生成客户端证书

certtool --generate-certificate \
            --template node1_client.info \
            --load-privkey node1_client_key.pem \
            --load-ca-certificate certificate_authority_certificate.pem \
            --load-ca-privkey certificate_authority_key.pem \
            --outfile node1_client_certificate.pem

5. 将证书分发到对应的计算节点(模板是node1_client.info的就分发到co-dev-node1多个计算节点,则执行多次)

(1) 分发中央证书到各计算节点

scp -p certificate_authority_certificate.pem root@co-dev-node1:/etc/pki/CA/cacert.pem
chmod 444 /etc/pki/CA/cacert.pem
restorecon /etc/pki/CA/cacert.pem

(2) 创建libvirt证书文件夹

mkdir -p /etc/pki/libvirt/private
chmod 755 /etc/pki/libvirt
chmod 750 /etc/pki/libvirt/private

(3) 分发服务端证书

scp -p node1_server_certificate.pem root@co-dev-node1:/etc/pki/libvirt/servercert.pem
scp -p node1_server_key.pem root@co-dev-node1:/etc/pki/libvirt/private/serverkey.pem
chgrp qemu /etc/pki/libvirt \
              /etc/pki/libvirt/servercert.pem \
              /etc/pki/libvirt/private \
              /etc/pki/libvirt/private/serverkey.pem
chmod 440 /etc/pki/libvirt/servercert.pem \             /etc/pki/libvirt/private/serverkey.pem
restorecon -R /etc/pki/libvirt \                 /etc/pki/libvirt/private

(5) 分发客户端证书

scp -p node1_client_certificate.pem root@co-dev-node1:/etc/pki/libvirt/clientcert.pem
scp -p node1_client_key.pem root@co-dev-node1:/etc/pki/libvirt/private/clientkey.pem
chmod 400 /etc/pki/libvirt/clientcert.pem /etc/pki/libvirt/private/clientkey.pem
restorecon /etc/pki/libvirt/clientcert.pem /etc/pki/libvirt/private/clientkey.pem

6. 重启libvirt

systemctl restart libvirtd

7.验证配置生效

virsh -c qemu+tls://<hostname>/system list --all

8.修改nova配置

live_migration_scheme=tls

9. 重启nova-compute

systemctl restart openstack-nova-compute

10. 验证nova热迁移功能正常

参考链接:https://wiki.libvirt.org/page/TLSSetup

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容