OpenStack 版本:Liberty
下面的配置针对的是allinone的部署方式,但是同理的可以应用到多节点的部署。
制作三个密钥证书文件,略
ca.pem
signing_cert.pem
signing_key.pem
将得到的三个文件放到/tmp/pems/目录下。
1.1 指定ssl使用的密钥和证书
(1) 拷贝pem文件到keystone的ssl目录
cp /tmp/pems/ca.pem /etc/keystone/ssl/certs/
cp /tmp/pems/signing_cert.pem /etc/keystone/ssl/certs/
cp /tmp/pems/signing_key.pem /etc/keystone/ssl/private/
chown keystone:keystone /etc/keystone/ssl –R
(2) 修改keystone的配置文件
[eventlet_server_ssl]
enable = true
certfile = /etc/keystone/ssl/certs/signing_cert.pem
keyfile = /etc/keystone/ssl/private/signing_key.pem
ca_certs = /etc/keystone/ssl/certs/ca.pem
1.2 更新keystone组件的endpoint
(1) 创建新的endpoint
keystone endpoint-create \
--service keystone \
--region RegionOne \
--publicurl https://vim.example.com:5000/v2.0 \
--internalurl https://vim.example.com:5000/v2.0 \
--adminurl https://vim.example.com:35357/v2.0
(2) 增加hosts记录
vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.167.14.164 vim.example.com
(3) 修改环境变量文件
vi /root/keystonerc_admin
unset OS_SERVICE_TOKEN
export OS_USERNAME=admin
export OS_PASSWORD=root
export OS_AUTH_URL=https://vim.example.com:5000/v2.0 #修改ip为域名,http为https
export OS_CACERT=/etc/keystone/ssl/certs/ca.pem # 追加该环境变量
export PS1='[\u@\h \W(keystone_admin)]\$ '
export OS_TENANT_NAME=admin
export OS_REGION_NAME=RegionOne
(4) 删除旧的endpoint
keystone endpoint-list
如果该命令执行失败,重启服务后,使用新的环境变量 source /root/keystonerc_admin
keystone endpoint-delete $endpoint_id
$endpoint_id : 旧的keystone endpoint id
(5) 重启keystone服务
service openstack-keystone restart
(6) 确认新的环境变量和新的endpoint可以使用
source /root/keystonerc_admin
keystone endpoint-list
2.1 配置使用SSL访问keystone
(1) 配置nova.conf,修改keystone认证方式
vi /etc/nova/nova.conf
[keystone_authtoken]
auth_uri=https://vim.example.com:5000/v2.0
cafile=/etc/nova/ssl/ca.pem
insecure=true
auth_host=vim.example.com
auth_protocol=https
identity_uri=https://vim.example.com:35357
(2) 拷贝pem文件到nova的ssl目录
mkdir /etc/nova/ssl
cp /tmp/pems/* /etc/nova/ssl
chown nova:nova /etc/nova/ssl -R
(3) 重启nova服务
service openstack-nova-api restart
service openstack-nova-compute restart
service openstack-nova-scheduler restart
service openstack-nova-cert restart
service openstack-nova-conductor restart
service openstack-nova-consoleauth restart
(4) 测试keystone认证
nova --insecure hypervisor-list
2.2 指定nova使用的密钥和证书
(1) 修改nova的配置文件
vi /etc/nova/nova.conf
enabled_ssl_apis = osapi_compute
ssl_cert_file=/etc/nova/ssl/signing_cert.pem
ssl_key_file=/etc/nova/ssl/signing_key.pem
2.3 更新nova组件的endpoint
(1) 创建新的endpoint
keystone endpoint-create --service nova --region RegionOne \
--publicurl "https://vim.example.com:8774/v2/%(tenant_id)s" \
--internalurl "https://vim.example.com:8774/v2/%(tenant_id)s" \
--adminurl "https://vim.example.com:8774/v2/%(tenant_id)s"
(2) 删除旧的endpoint
keystone endpoint-list
keystone endpoint-delete $endpoint_id
$endpoint_id : 旧的nova endpoint id
(3) 重启nova服务
service openstack-nova-api restart
service openstack-nova-compute restart
service openstack-nova-scheduler restart
service openstack-nova-cert restart
service openstack-nova-conductor restart
service openstack-nova-consoleauth restart
(4) 测试nova服务
nova --insecure hypervisor-list
2.4 配置nova以SSL方式访问其他组件
vi /etc/nova/nova.conf
[cinder]
endpoint_template=https://vim.example.com:8776/v2/%(project_id)s
cafile=/etc/nova/ssl/ca.pem
[glance]
protocol=https
api_servers=https://vim.example.com:9292
api_insecure=true
[neutron]
url=https://vim.example.com:9696
admin_auth_url=https://vim.example.com:5000/v2.0
cafile=/etc/nova/ssl/ca.pem
insecure=true
3.1 配置使用SSL访问keystone
(1) 配置glance,修改keystone认证方式
vi /etc/glance/glance-api.conf
[keystone_authtoken]
auth_uri=https://vim.example.com:5000/v2.0
cafile=/etc/glance/ssl/ca.pem
insecure=true
auth_host= vim.example.com
auth_protocol=https
identity_uri=https://vim.example.com:35357
vi /etc/glance/glance-registry.conf
[keystone_authtoken]
auth_uri=https:/vim.example.com:5000/v2.0
cafile=/etc/glance/ssl/ca.pem
insecure=true
auth_host= vim.example.com
auth_protocol=https
identity_uri=https://vim.example.com:35357
vi /etc/glance/glance-cache.conf
[DEFAULT]
auth_url=https://vim.example.com:5000/v2.0
(2) 拷贝pem文件到glance的ssl目录
mkdir /etc/glance/ssl
cp /tmp/pems/* /etc/glance/ssl
chown glance:glance /etc/glance/ssl -R
(3) 重启glance服务
service openstack-glance-api restart
service openstack-glance-registry restart
(4) 测试keystone认证
nova image-list
3.2 指定glance使用的密钥和证书
(1) 修改glance的配置文件
vi /etc/glance/glance-api.conf
[DEFAULT]
cert_file=/etc/glance/ssl/signing_cert.pem
key_file=/etc/glance/ssl/signing_key.pem
registry_client_protocol=https
registry_client_ca_file=/etc/glance/ssl/ca.pem
vi /etc/glance/glance-registry.conf
[DEFAULT]
cert_file=/etc/glance/ssl/signing_cert.pem
key_file=/etc/glance/ssl/signing_key.pem
3.3 更新glance组件的endpoint
(1) 创建新的endpoint
keystone endpoint-create --service glance --region RegionOne \
--publicurl "https://vim.example.com:9292" \
--internalurl "https://vim.example.com:9292" \
--adminurl "https://vim.example.com:9292"
(2) 删除旧的endpoint
keystone endpoint-list
keystone endpoint-delete $endpoint_id
$endpoint_id : 旧的glance endpoint id
(3) 重启glance服务
service openstack-glance-api restart
service openstack-glance-registry restart
(4) 测试glance服务
nova image-list
3.4 配置glance以SSL方式访问其他组件
vi /etc/glance/glance-api.conf
[glance_store]
cinder_endpoint_template=https://vim.example.com:8776/v2/%(project_id)s
vi /etc/glance/glance-registry.conf
[glance_store]
cinder_endpoint_template=https://vim.example.com:8776/v2/%(project_id)s
4.1 配置使用SSL访问keystone
(1) 配置cinder配置文件
vi /etc/cinder/api-paste.ini
auth_uri=https://vim.example.com:5000/v2.0
identity_uri=https://vim.example.com:35357
vi /etc/cinder/ cinder.conf
[keystone_authtoken]
auth_uri = https://vim.example.com:5000
auth_url = https://vim.example.com:35357
cafile=/etc/cinder/ssl/ca.pem
insecure = true
auth_host = vim.example.com
auth_protocol = https
identity_uri=https://vim.example.com:35357
(2) 拷贝pem文件到cinder的ssl目录
mkdir /etc/cinder/ssl
cp /tmp/pems/* /etc/cinder/ssl
chown cinder:cinder /etc/cinder/ssl -R
(3) 重启cinder服务
service openstack-cinder-api restart
service openstack-cinder-scheduler restart
service openstack-cinder-volume restart
service openstack-cinder-backup restart
(4) 测试keystone认证
nova list
4.2 指定cinder使用的密钥和证书
(1) 修改cinder的配置文件
vi /etc/cinder/cinder.conf
[DEFAULT]
ssl_cert_file=/etc/cinder/ssl/signing_cert.pem
ssl_key_file=/etc/cinder/ssl/signing_key.pem
4.3 更新cinder组件的endpoint
(1) 创建新的endpoint
keystone endpoint-create --service cinderv2 --region RegionOne \
--publicurl "https://vim.example.com:8776/v2/%(tenant_id)s" \
--internalurl "https://vim.example.com:8776/v2/%(tenant_id)s" \
--adminurl "https://vim.example.com:8776/v2/%(tenant_id)s"
keystone endpoint-create --service cinder --region RegionOne \
--publicurl "https://vim.example.com:8776/v1/%(tenant_id)s" \
--internalurl "https://vim.example.com:8776/v1/%(tenant_id)s" \
--adminurl "https://vim.example.com:8776/v1/%(tenant_id)s"
(2) 删除旧的endpoint
keystone endpoint-list
keystone endpoint-delete $endpoint_id
$endpoint_id : 旧的cinder endpoint id
(3) 重启cinder服务
service openstack-cinder-api restart
service openstack-cinder-scheduler restart
service openstack-cinder-volume restart
service openstack-cinder-backup restart
(4) 测试cinder服务
nova list
4.4 配置cinder以SSL方式访问其他组件
vi /etc/cinder/cinder.conf
[DEFAULT]
glance_host = vim.example.com
glance_api_servers = https://vim.example.com:9292
glance_api_insecure = true
glance_ca_certificates_file = /etc/cinder/ssl/ca.pem
nova_endpoint_template = https://vim.example.com:8774/v2/%(project_id)s
nova_ca_certificates_file = /etc/cinder/ssl/ca.pem
nova_api_insecure = true
5.1 配置使用SSL访问keystone
(1) 修改neutron配置文件
vi /etc/neutron/api-paste.ini
identity_uri=https://vim.example.com:35357
auth_uri=https://vim.example.com:5000/v2.0
vi /etc/neutron/metadata_agent.ini
auth_url = https://vim.example.com:5000/v2.0
vi /etc/neutron/neutron.conf
[keystone_authtoken]
auth_uri = https://vim.example.com:5000/v2.0
identity_uri = https://vim.example.com:35357
cafile=/etc/neutron/ssl/ca.pem
insecure=true
auth_host=vim.example.com
auth_protocol=https
(2) 拷贝pem文件到neutron的ssl目录
mkdir /etc/neutron/ssl
cp /tmp/pems/* /etc/neutron/ssl
chown neutron:neutron /etc/neutron/ssl -R
(3) 重启neutron服务
service neutron-server restart
service neutron-dhcp-agent restart
service neutron-l3-agent restart
service neutron-metadata-agent restart
service neutron-lbaas-agent restart
service neutron-openvswitch-agent restart
service neutron-metering-agent restart
(4) 测试keystone认证
nova net-list
5.2 指定neutron使用的密钥和证书
(1) 修改neutron的配置文件
vi /etc/neutron/neutron.conf
[DEFAULT]
use_ssl = True
ssl_cert_file = /etc/neutron/ssl/signing_cert.pem
ssl_key_file = /etc/neutron/ssl/signing_key.pem
5.3 更新neutron组件的endpoint
(1) 创建新的endpoint
keystone endpoint-create --service neutron --region RegionOne \
--publicurl "https://vim.example.com:9696" \
--internalurl "https://vim.example.com:9696" \
--adminurl "https://vim.example.com:9696"
(2) 删除旧的endpoint
keystone endpoint-list
keystone endpoint-delete $endpoint_id
$endpoint_id : 旧的neutron endpoint id
(3) 重启neutron服务
service neutron-server restart
service neutron-dhcp-agent restart
service neutron-l3-agent restart
service neutron-metadata-agent restart
service neutron-lbaas-agent restart
service neutron-openvswitch-agent restart
service neutron-metering-agent restart
(4) 测试neutron服务
nova net-list
5.4 配置neutron以SSL方式访问其他组件
vi /etc/neutron/neutron.conf
[DEFAULT]
nova_url = https://vim.example.com:8774/v2
nova_admin_auth_url =https://vim.example.com:5000/v2.0
[nova]
cafile = /etc/neutron/ssl/ca.pem
6.1 配置使用SSL访问keystone
(1) 修改ceilometer配置
vi /etc/ceilometer/ceilometer.conf
[keystone_authtoken]
auth_uri = https://vim.example.com:5000/v2.0
cafile=/etc/ceilometer/ssl/ca.pem
insecure = true
auth_host = vim.example.com
auth_protocol = https
identity_uri = https://vim.example.com:35357
[service_credentials]
os_auth_url = https://vim.example.com:5000/v2.0
(2) 拷贝pem文件到ceilometer的ssl目录
mkdir /etc/ceilometer/ssl
cp /tmp/pems/* /etc/ceilometer/ssl
chown ceilometer:ceilometer /etc/ceilometer/ssl -R
(3) 重启ceilometer服务
service openstack-ceilometer-api restart
service openstack-ceilometer-central restart
service openstack-ceilometer-compute restart
service openstack-ceilometer-collector restart
service openstack-ceilometer-alarm-notifier restart
service openstack-ceilometer-alarm-evaluator restart
service openstack-ceilometer-notification restart
7.1 配置使用SSL访问keystone
(1) 修改horizon配置
vi /etc/openstack-dashboard/local_settings
OPENSTACK_KEYSTONE_URL = "https://vim.example.com:5000/v2.0"
OPENSTACK_SSL_NO_VERIFY = True
OPENSTACK_SSL_CACERT = '/etc/keystone/ssl/certs/ca.pem'
(2) 重启httpd服务
service httpd restart