2장. 인증 및 보안
2.1. TLS/SSL 인증
Red Hat Virtualization API에는 HTTPS(Hypertext Transfer Protocol Secure)가 필요합니다. [1] SDK 및 CLI 구성 요소와 같은 클라이언트 소프트웨어와의 안전한 상호 작용을 위해. 여기에는 서버에서 사용하는 CA 인증서를 가져와서 클라이언트의 인증서 저장소로 가져와야 합니다.
2.1.1. CA 인증서 받기
Red Hat Virtualization Manager에서 CA 인증서를 가져와 다음 방법 중 하나를 사용하여 클라이언트 머신으로 전송할 수 있습니다.
- 방법 1
CA 인증서를 가져오는 기본 방법은
openssl s_client
명령줄 툴을 사용하여 서버와 함께 실제 TLS 핸드셰이크를 수행한 다음 제공하는 인증서를 추출하는 것입니다. 다음과 같이 명령을 실행합니다.$ openssl s_client \ -connect myengine.example.com:443 \ -showcerts \ < /dev/null
이 명령은 서버에 연결하고 다음과 유사한 출력을 표시합니다.
CONNECTED(00000003) depth=1 C = US, O = Example Inc., CN = myengine.example.com.23416 verify error:num=19:self signed certificate in certificate chain --- Certificate chain 0 s:/C=US/O=Example Inc./CN=myengine.example.com i:/C=US/O=Example Inc./CN=myengine.example.com.23416 -----BEGIN CERTIFICATE----- MIIEaTCCA1GgAwIBAgICEAQwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVMx FTATBgNVBAoTDEV4YW1wbGUgSW5jLjEjMCEGA1UEAxMaZW5naW5lNDEuZXhhbXBs SVlJe7e5FTEtHJGTAeWWM6dGbsFhip5VXM0gfqg= -----END CERTIFICATE----- 1 s:/C=US/O=Example Inc./CN=myengine.example.com.23416 i:/C=US/O=Example Inc./CN=myengine.example.com.23416 -----BEGIN CERTIFICATE----- MIIDxjCCAq6gAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVMx FTATBgNVBAoTDEV4YW1wbGUgSW5jLjEjMCEGA1UEAxMaZW5naW5lNDEuZXhhbXBs Pkyg1rQHR6ebGQ== -----END CERTIFICATE-----
-----BEGINECDHERTIFICATE----- 및
ECDHERTIFICATE------ 마크 사이의 텍스트에는 서버에서 제공하는 인증서가 표시됩니다. 첫 번째는 서버 자체의 인증서이며 마지막 하나는 CA의 인증서입니다. 마크를 포함한 CA 인증서를-----
ENDca.crt
파일에 복사합니다. 결과는 다음과 유사해야 합니다.-----BEGIN CERTIFICATE----- MIIDxjCCAq6gAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVMx FTATBgNVBAoTDEV4YW1wbGUgSW5jLjEjMCEGA1UEAxMaZW5naW5lNDEuZXhhbXBs Pkyg1rQHR6ebGQ== -----END CERTIFICATE-----
중요이는 서버에서 사용하는 CA 인증서를 가져오는 가장 안정적인 방법입니다. 여기에서 설명하는 나머지 방법은 대부분의 경우 작동하지만 수동으로 서버 관리자로 교체된 경우 올바른 CA 인증서를 가져오지 않습니다.
- 방법 2
위에서 설명한
openssl s_client
방법을 사용할 수 없는 경우 명령줄 툴을 사용하여 Red Hat Virtualization Manager에서 CA 인증서를 다운로드할 수 있습니다.명령줄 툴의 예로는
curl
및wget
이 있으며, 둘 다 여러 플랫폼에서 사용할 수 있습니다.curl
을 사용하는 경우 :$ curl \ --output ca.crt \ 'http://myengine.example.com/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA'
wget
을 사용하는 경우:$ wget \ --output-document ca.crt \ 'http://myengine.example.com/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA'
- 방법 3
웹 브라우저를 사용하여 다음에 있는 인증서로 이동합니다.
https://myengine.example.com/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA
선택한 브라우저에 따라 인증서를 브라우저의 키 저장소로 다운로드하거나 가져옵니다.
-
브라우저가 인증서를 다운로드하는 경우: 파일을
ca.crt
로 저장합니다. -
브라우저가 인증서를 가져오는 경우: 브라우저의 인증 옵션에서 내보낸 후
ca.crt
로 저장합니다.
-
브라우저가 인증서를 다운로드하는 경우: 파일을
- 방법 4
Red Hat Virtualization Manager에 로그인하고 신뢰 저장소에서 인증서를 내보낸 후 클라이언트 머신에 복사합니다.
-
Red Hat Virtualization Manager 시스템에
root
로 로그인합니다. Java
keytool
관리 유틸리티를 사용하여 신뢰 저장소에서 인증서를 내보냅니다.# keytool \ -keystore /etc/pki/ovirt-engine/.truststore \ -storepass mypass \ -exportcert \ -alias cacert \ -rfc \ -file ca.crt
이렇게 하면
ca.crt
라는 인증서 파일이 생성됩니다.scp
명령을 사용하여 클라이언트 시스템에 인증서를 복사합니다.$ scp ca.crt myuser@myclient.example.com:/home/myuser/.
-
Red Hat Virtualization Manager 시스템에
이러한 각 방법은 클라이언트 시스템에 ca.crt
라는 인증서 파일을 생성합니다. 그런 다음 이 파일을 클라이언트의 인증서 저장소로 가져와야 합니다.
2.1.2. 클라이언트에 인증서 가져오기
클라이언트로 인증서를 가져오려면 클라이언트가 인증서를 저장하고 해석하는 방법에 의존합니다. 인증서 가져오기에 대한 자세한 내용은 클라이언트 설명서를 참조하십시오.