第 2 章 身份验证和安全
2.1. TLS/SSL 认证
红帽虚拟化 API 需要 Hypertext 传输协议安全(HTTPS) [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-----
-----BEGIN CERTIFICATE-----
和-----END CERTIFICATE-----
之间的文本显示服务器提供的证书。第一个是服务器本身的证书,最后一个是 CA 的证书。将 CA 证书(包括标记)复制到ca.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
使用 Web 浏览器导航到位于以下位置的证书:
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,从信任存储导出证书,并将其复制到您的客户端计算机。
-
以 root 用户身份登录 Red Hat Virtualization Manager 机器
。
使用 Java
密钥工具管理
实用程序从信任存储导出证书:# 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/.
-
以 root 用户身份登录 Red Hat Virtualization Manager 机器
每个方法都会在您的客户端机器上产生名为 ca.crt
的证书文件。然后,您必须将此文件导入到客户端的证书存储中。
2.1.2. 将证书导入到客户端
将证书导入到客户端取决于客户端如何存储和解释证书。有关导入证书的更多信息,请参阅您的客户端文档。