libvirt TLS

博客原文

http://hi.baidu.com/wwfmarcpjkbdiod/item/7b43c89e949d7fbbcd80e590

 

构建Libvirt的x509证书远程tls连接
http://libvirt.org/remote.html


连接格式:

1. 通用格式:
driver[+transport]://[username@][hostname][:port]/[path][?extraparameters]

2. 如使用qemu和tls的:(在配置完毕后)
virsh -c qemu+tls://10.61.1.85/system


证书类型及位置:

见http://libvirt.org/remote.html
1. CA证书:server和client
2. server的私有Key,及公有Key(由CA颁发的):server上
3. client的私有Key,及公有Key(由CA颁发的):client上


TLS认证原理:

1. client认证server。client将server发送的证书与server的hostname进行匹配
2. server认证client的可控性。server对client的IP,或者client的IP和证书来进行认证
3. 默认的server的libvirt的配置是不对DN进行检查,也就是说允许所有的拥有CA颁发的证书的client登入


搭建CA、server端证书、client端证书:

1. 过程见那个网页
2. 没有的/etc/pki/libvirt目录可以创建


配置、运行和调试:

1. server上配置:
如果想显式控制访问者,则可以修改/etc/libvirt/libvirtd.conf
a. Uncomment : tls_allowed_dn_list,改成类似这样的”
tls_allowed_dn_list = ["C=CN,O=red_hat,L=Beijing,ST=Beijing,CN=10.61.1.87"]

b. 注意几点:
i. 各个项的顺序要一致,比如使用这样则不能认证:
tls_allowed_dn_list = ["C=CN,ST=Beijing,L=Beijing,O=red_hat,CN=10.61.1.87"]
ii. 中间逗号后面不能有空格
iii. 如果犯了i,ii的错误,则可能会有这样的错误:
Connecting to uri: qemu+tls://10.61.1.85/system
error: unable to connect to libvirtd at '10.61.1.85': Invalid argument
error: failed to connect to the hypervisor

2. client及server端的运行:
a. server端libvirtd启动必须要以--listen选项启动
b. client端执行:virsh -c qemu+tls://10.61.1.85/system

3. 认证失败的调试
a. 使用/usr/sbin/libvirtd --listen --verbose 来启动libvirtd,可以出现部分错误信息,如tls_allowed_dn_list各项的顺序不对时,会出现:
15:44:48.527: error : remoteCheckCertificate:1138 : remoteCheckCertificate: client's Distinguished Name is not on the list of allowed clients (tls_allowed_dn_list).  Use 'openssl x509 -in clientcert.pem -text' to view the Distinguished Name field in the client certificate, or run this daemon with --verbose option.
15:44:48.527: error : remoteCheckAccess:1157 : remoteCheckCertificate: failed to verify client's certificate

b. 接上一条,如果出现了那个信息,可以使用openssl x509 -in clientcert.pem -text来对client的公钥进行信息输出,并注意这个字段:
Subject: C=CN, O=red_hat, L=Beijing, ST=Beijing, CN=10.61.1.87
其实这一行的主体内容去掉空格,就是tls_allowed_dn_list中应该填的DN内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值