第 3 章 API 调用身份验证
与 Satellite API 交互需要与卫星服务器 CA 证书进行 SSL 身份验证,并与有效的 Satellite 用户凭证进行身份验证。本章概述了可以使用的验证方法。
3.1. SSL 身份验证概述
Red Hat Satellite 使用 HTTPS,在与 Red Hat Satellite Server 通信时提供一定程度的加密和身份验证。Satellite 6.10 不支持非 SSL 通信。
每个红帽卫星服务器都使用自签名证书。此证书同时充当服务器证书,以验证加密密钥和证书颁发机构(CA)以信任卫星服务器的身份。
3.1.1. 配置 SSL 身份验证
使用以下步骤为 API 请求配置到卫星服务器的 SSL 身份验证。
流程
从卫星服务器获取您要使用以下选项之一进行通信的证书:
如果您从远程服务器执行命令,请使用 SSH 获取证书:
$ scp root@satellite.example.com:/var/www/html/pub/katello-server-ca.crt ./
如果您直接在 Satellite 服务器中执行命令,请将证书复制到当前目录中:
$ cp /var/www/html/pub/katello-server-ca.crt ./
将 API 请求与
--cacert katello-server-ca.crt
选项一起使用以验证卫星服务器的身份:$ curl --request GET \ --user sat_username:sat_password \ --header "Accept:application/json" \ --cacert katello-server-ca.crt \ https://satellite.example.com/katello/api/organizations \ | python -m json.tool
创建网络安全服务(NSS)数据库来存储
katello-server-ca.crt
证书:$ certutil -N -d sql:$HOME/.pki/nssdb
永久包含 NSS 数据库中的证书:
$ certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "Red Hat Satellite" \ -i katello-server-ca.crt
输入没有
--cacert
选项的 API 请求来验证 NSS 数据库中是否存在证书:$ curl --request GET \ --user sat_username:sat_password \ https://satellite.example.com/api/v2/hosts