이 장에서는 백업 사용자를 위해 OpenStack에서 SSL을 활성화하는 방법을 보여줍니다.
OpenStack을 처음 사용하는 경우 http://docs.openstack.org/에서 제공되는 일반 설정에 대한 문서를 확인해야 합니다
실행 중인 OpenStack이 이미 있는 경우 단계에 따라 SSL을 활성화할 수 있습니다.
다음 예제에서 사용된 OpenStack 버전은 다음과 같습니다:
다음 예에서 사용된 값은 다음과 같습니다.:
참고: Keystone 관리 토큰의 값은 /etc/keystone/keystone.conf 의 keystone 구성 파일 내부에 정의된 변수 이름 "admin_token"에서 찾을 수 있습니다.
테넌트(프로젝트), 사용자, 역할 및 스토리지 할당량 등을 설정하기 전에 bash 프로필에서 다음 변수를 설정하고 proxy-server.conf에서 필터를 설정하십시오.
1단계: .bash_profile에 환경 변수 추가
예시 (/root/.bash_profile)---------------------------------------------------------------------------------------------------- : : Trimmed : : export OS_USERNAME=admin export OS_PASSWORD=admin export OS_TENANT_NAME=mybackup export OS_AUTH_URL=https://10.7.54.7:5000/v2.0 export OS_SERVICE_ENDPOINT=https://10.7.54.7:35357/v2.0 export OS_SERVICE_TOKEN=7b05dab9722d44e7b9a82dc0d1ff74ea : : Trimmed : : ----------------------------------------------------------------------------------------------------
프로필을 적용하려면 다시 로그인하십시오.
참고: OS_SERVICE_TOKEN 값은 /etc/keystone/keystone.conf 의 keystone 구성 파일 내에 정의된 변수 이름 "admin_token"에서 찾을 수 있습니다.
SSL 인증서를 설정하려면 /etc/keystone/keystone.conf 파일을 편집하십시오
유효한 인증서 파일이 있다고 가정합니다
/etc/keystone/ssl_cert.pem
/etc/keystone/ssl_key.pem
/etc/keystone/cacert.pem
여기서
ssl_cert.pem은 공개 키 파일입니다,
ssl_key.pem은 개인 키 파일이고,
cacert.pem은 CA 루트 인증서 파일입니다.
CA에서 발급한 인증서의 형식이 다를 수 있으므로 인증서 연결에 대한 올바른 지침을 CA에 항상 확인하십시오.
예시 (/etc/swift/proxy-server.conf)---------------------------------------------------------------------------------------------------- : : : Trimmed : : : [ssl] enable = True certfile = /etc/keystone/ssl_cert.pem keyfile = /etc/keystone/ssl_key.pem ca_certs = /etc/keystone/cacert.pem : : : Trimmed : : : ----------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------- [root@os ~]# service openstack-keystone restart Stopping keystone: [ OK ] Starting keystone: [ OK ] [root@os ~]# ----------------------------------------------------------------------------------------------------
신뢰할 수 없는 SSL 인증서를 사용하는 경우 '--insecure' 스위치를 사용해야 합니다.
예시---------------------------------------------------------------------------------------------------- [root@os ~]# keystone --insecure service-list WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored). +----------------------------------+------------+--------------+--------------------------------+ | id | name | type | description | +----------------------------------+------------+--------------+--------------------------------+ | 5f805cc7df2a43eb90db6fe11ed682f6 | ceilometer | metering | Openstack Metering Service | | 3134116675a8420a88ef01cdcb0c8728 | cinder | volume | Cinder Service | | b703b91737954d01a2d180f6c3d575ba | cinder_v2 | volumev2 | Cinder Service v2 | | cc787cf0258e46d6a342e1502e7bf6be | glance | image | Openstack Image Service | | b3af7d0a95d34aa7883629df7a7f7f56 | keystone | identity | OpenStack Identity Service | | 10f1a022ada246138aba5834e3622a91 | neutron | network | Neutron Networking Service | | 218b5356d65e4d8382297f72d65c8bbb | nova | compute | Openstack Compute Service | | a809ad43f380400cb55ff2520bb27ab0 | nova_ec2 | ec2 | EC2 Service | | 8b517bd82d4345c895384f9596a29880 | swift | object-store | Openstack Object-Store Service | | 11882e74696547b0ba1e4d276074ae37 | swift_s3 | s3 | Openstack S3 Service | +----------------------------------+------------+--------------+--------------------------------+ [root@os ~]# ----------------------------------------------------------------------------------------------------
Swift ID는 굵게 표시됩니다.
---------------------------------------------------------------------------------------------------- [root@os ~]# keystone --insecure endpoint-list WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored). +----------------------------------+-----------+--- ---+----------------------------------+ | id | region | ......Trimmed...... | service_id | +----------------------------------+-----------+--- ---+----------------------------------+ | 00a39b6e21a24562b470b61a1b82902d | RegionOne | h )s | 218b5356d65e4d8382297f72d65c8bbb | | 047f9c3dd19743e280a553d8a34a9202 | RegionOne | ......Trimmed...... | 10f1a022ada246138aba5834e3622a91 | | 2b89407a81574b2c8f0fdef9eefc507a | RegionOne | | 5f805cc7df2a43eb90db6fe11ed682f6 | | 47b6d5974d744c21a04b6ca2781f57a0 | RegionOne | )s | b703b91737954d01a2d180f6c3d575ba | | 485ba5a748fc4f1e865d08774fae8ff7 | RegionOne | | b3af7d0a95d34aa7883629df7a7f7f56 | | 90bb1d878b7045f086e2ada7ce853308 | RegionOne | ht ......Trimmed...... )s | 3134116675a8420a88ef01cdcb0c8728 | | 9ac0472cb48f49b3b44cb4e3365be01a | RegionOne | | 11882e74696547b0ba1e4d276074ae37 | | a1af6685d3e04e5fa7b71f6c244f1393 | RegionOne | ht | 8b517bd82d4345c895384f9596a29880 | | a9b9c9fbef6a44669788c1946a3c8e48 | RegionOne | | cc787cf0258e46d6a342e1502e7bf6be | | c370061d0cc64386a470a5a0fb01e424 | RegionOne | ......Trimmed...... n | a809ad43f380400cb55ff2520bb27ab0 | +----------------------------------+-----------+--- ---+----------------------------------+ [root@os ~]# ----------------------------------------------------------------------------------------------------
service_id=8b517bd82d4345c895384f9596a29880을 사용하여 swift 서비스의 엔드포인트를 조회합니다
Swift 서비스의 동일한 행에서 찾을 수 있는 ID가 a1af6685d3e04e5fa7b71f6c244f1393인 서비스 엔드포인트를 삭제합니다.
예시---------------------------------------------------------------------------------------------------- [root@os ~]# keystone --insecure endpoint-delete a1af6685d3e04e5fa7b71f6c244f1393 WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored). Endpoint has been deleted. [root@os ~]# ----------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------- [root@os ~]# keystone --insecure endpoint-create --region RegionOne --service-id=8b517bd82d4345c895384f9596a29880 --publicurl 'https://10.7.54.7:8080/v1/AUTH_%(tenant_id)s' --adminurl 'https://10.7.54.7:8080/v1' --internalurl ' https://10.7.54.7:8080/v1/AUTH_%(tenant_id)s' WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored). +-------------+----------------------------------------------+ | Property | Value | +-------------+----------------------------------------------+ | adminurl | https://10.7.54.7:8080/v1 | | id | fb937c038fd34724bd7415fff3ee7736 | | internalurl | https://10.7.54.7:8080/v1/AUTH_%(tenant_id)s | | publicurl | https://10.7.54.7:8080/v1/AUTH_%(tenant_id)s | | region | RegionOne | | service_id | 8b517bd82d4345c895384f9596a29880 | +-------------+----------------------------------------------+ [root@os ~]# ----------------------------------------------------------------------------------------------------
proxy-server.conf 파일을 편집하고 아래 예에서 빨간색 으로 강조 펴시된 내용을 추가합니다.
유효한 인증서 파일이 있다고 가정합니다
/etc/swift/ssl_cert.pem
/etc/swift/ssl_key.pem
여기에서
ssl_cert.pem은 공개 키 파일이며,
ssl_key.pem은 개인 키 파일입니다.
CA에서 발급한 인증서의 형식이 다를 수 있으므로 인증서 연결에 대한 올바른 지침을 CA에 항상 확인하십시오.
예시 (/etc/swift/proxy-server.conf)---------------------------------------------------------------------------------------------------- # This file is managed by puppet. Do not edit # [DEFAULT] bind_port = 8080 bind_ip = 10.7.54.7 : : : Trimmed : : : cert_file = /etc/swift/ssl_cert.pem key_file = /etc/swift/ssl_key.pem : : : Trimmed : : : [filter:authtoken] : : : Trimmed : : : auth_protocol = https auth_uri = https://10.7.54.7:5000 insecure = true ----------------------------------------------------------------------------------------------------
/etc/swift/proxy-server.conf 구성 파일을 수정한 후 swift 관련 서비스를 다시 시작합니다 .
예시---------------------------------------------------------------------------------------------------- [root@os ~]# swift-init main restart Signal proxy-server pid: 17166 signal: 15 Signal container-server pid: 17167 signal: 15 Signal account-server pid: 17168 signal: 15 Signal object-server pid: 17169 signal: 15 object-server (17169) appears to have stopped container-server (17167) appears to have stopped account-server (17168) appears to have stopped proxy-server (17166) appears to have stopped Starting proxy-server...(/etc/swift/proxy-server.conf) Starting container-server...(/etc/swift/container-server.conf) Starting account-server...(/etc/swift/account-server.conf) Starting object-server...(/etc/swift/object-server.conf) WARNING: SSL should only be enabled for testing purposes. Use external SSL termination for a production deployment. [root@os ~]# ----------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------- [root@os ~]# swift --insecure stat Account: AUTH_49f2482ecff9431bae1d32fa2a004026 Containers: 8 Objects: 480 Bytes: 189030388 Meta Quota-Bytes: 10737418240 X-Timestamp: 1412574345.10669 Content-Type: text/plain; charset=utf-8 Accept-Ranges: bytes [root@os ~]# ----------------------------------------------------------------------------------------------------