自定义代理程序证书
代理程序默认使用自签名传输层安全性 (TLS) 证书。要为代理程序使用自定义证书,您必须首先从证书颁发机构获取证书、证书链和私有密钥。通过这些项目,PKCS12 文件将用于保护密钥材料,以便将其导入到代理程序的密钥存储。代理程序基于 Apache Knox。您可以使用以下步骤,将默认证书替换为您的自定义证书。
在以下步骤中,将 MasterPublicDNS
替换为 cluster details (集群详细信息) 窗格的 Summary (摘要) 选项卡上的 Master public DNS (主公有 DNS) 所显示的值。例如,ec2-11-222-33-44.compute-1.amazonaws.com
。
-
要从证书、证书链和私有密钥创建 PKCS12 文件,请在具有证书文件并安装了
openssl
的主机上运行以下命令。openssl pkcs12 -export -out proxy_agent_certificate.pfx -inkey
private.key
-incertificate.cer
-certfilecertchain.cer
-
将
proxy_agent_certificate.pfx
文件复制到您集群主节点上的/home/hadoop
目录。scp -i
EC2KeyPair.pem
proxy_agent_certificate.pfx hadoop@MasterPublicDNS
:/home/hadoop -
通过 SSH 连接到集群的主节点。
ssh -i
EC2KeyPair.pem
hadoop@MasterPublicDNS
-
使用以下命令查找您的集群特定主密钥。
less /etc/knox/conf/gateway-site.xml
查找
gateway.master.secret
属性并复制value
标签的内容,因为接下来的步骤中需要这些信息。 -
使用以下命令,创建现有代理程序密钥存储的备份副本。
sudo -s cd /mnt/var/lib/knox/data/security/keystores mkdir backups mv gateway.jks __gateway-credentials.jceks backups/
-
使用以下命令将您的自定义证书导入到新的密钥存储。
sudo -s cd /mnt/var/lib/knox/data/security/keystores keytool -importkeystore \ -srckeystore /home/hadoop/proxy_agent_certificate.pfx \ -srcstoretype pkcs12 -destkeystore gateway.jks \ -deststoretype jks \ -srcalias 1 \ -destalias gateway-identity
系统提示
Enter destination keystore password
时,使用gateway-site.xml
文件中的 Knox 主密钥。使用以下命令确保新创建的
gateway.jks
文件由 knox 用户拥有。chown knox:knox gateway.jks
如果您的私有密钥由密码保护,请确保 Knox 知道该密码。
sudo -u knox bash cd /usr/lib/knox bin/knoxcli.sh create-cert create-alias gateway-identity-passphrase
在提示时,输入保护您的私有密钥的密码。
-
使用以下命令重新启动 Knox。
sudo -u knox bash cd /usr/lib/knox bin/gateway.sh stop
Knox 应自动重新启动,您可以通过查看
/var/log/knox/gateway.log
来检查 Knox 的状态。 -
要确保代理程序使用了新证书,请导航到 Apache Zeppelin https://
MasterPublicDNS
:8442/gateway/default/zeppelin/。您可以使用浏览器来检查证书,确保这是您的自定义证书。