第 2 章 准备在 OpenShift Container Platform 上部署 AMQ Interconnect
在 OpenShift Container Platform 上部署 AMQ Interconnect 之前,请执行以下步骤之一:
如果要评估 AMQ Interconnect,您可以跳过这些步骤,但红帽建议您始终保护 AMQ Interconnect 通信。
2.1. 为 SSL/TLS 验证创建 secret
如果您安装了 Red Hat Integration - AMQ Certificate Manager Operator,您可以跳过这个过程,使用 AMQ Certificate Manager 保护网络的说明将包括在相关流程中。OpenShift 使用名为 Secret
的对象来保存敏感信息,如 SSL/TLS 证书。如果要保护路由器间的流量、客户端流量或两者,那么您必须创建 SSL/TLS 证书和私钥,并将它们提供给 OpenShift 作为 secret。
流程
如果您没有用于 inter-router 连接的现有证书颁发机构 (CA) 证书,请创建一个。
这些命令为路由器连接创建一个自签名 CA 证书:
# Create a new directory for the inter-router certificates. $ mkdir internal-certs # Create a private key for the CA. $ openssl genrsa -out internal-certs/ca-key.pem 2048 # Create a certificate signing request for the CA. $ openssl req -new -batch -key internal-certs/ca-key.pem -out internal-certs/ca-csr.pem # Self sign the CA certificate. $ openssl x509 -req -in internal-certs/ca-csr.pem -signkey internal-certs/ca-key.pem -out internal-certs/ca.crt
为 CA 签名的路由器创建证书。
这些命令创建私钥和证书,并使用上一步中创建的 CA 为证书签名:
# Create a private key. $ openssl genrsa -out internal-certs/tls.key 2048 # Create a certificate signing request for the router. $ openssl req -new -batch -subj "/CN=amq-interconnect.<project_name>.svc.cluster.local" -key internal-certs/tls.key -out internal-certs/server-csr.pem # Sign the certificate using the CA. $ openssl x509 -req -in internal-certs/server-csr.pem -CA internal-certs/ca.crt -CAkey internal-certs/ca-key.pem -out internal-certs/tls.crt -CAcreateserial
其中
<project_name>
是当前 OpenShift 项目的名称。创建包含私钥、路由器证书和 CA 证书的 secret。
此命令使用在前面的步骤中创建的密钥和证书创建 secret:
$ oc create secret generic inter-router-certs-secret --from-file=tls.crt=internal-certs/tls.crt --from-file=tls.key=internal-certs/tls.key --from-file=ca.crt=internal-certs/ca.crt
如果要使用 SSL/TLS 验证客户端连接(与使用 SASL 验证客户端相比),为客户端连接创建一个 CA 证书。
这些命令为客户端连接创建自签名 CA 证书:
# Create a new directory for the client certificates. $ mkdir client-certs # Create a private key for the CA. $ openssl genrsa -out client-certs/ca-key.pem 2048 # Create a certificate signing request for the CA. $ openssl req -new -batch -key client-certs/ca-key.pem -out client-certs/ca-csr.pem # Self sign the certificate. $ openssl x509 -req -in client-certs/ca-csr.pem -signkey client-certs/ca-key.pem -out client-certs/ca.crt
为 CA 签名的客户端连接创建证书。
这些命令创建私钥和证书,然后使用上一步中创建的 CA 为证书签名:
# Create a private key. $ openssl genrsa -out client-certs/tls.key 2048 # Create a certificate signing request for the client connections $ openssl req -new -batch -subj "/CN=<client_name>" -key client-certs/tls.key -out client-certs/client-csr.pem # Sign the certificate using the CA. $ openssl x509 -req -in client-certs/client-csr.pem -CA client-certs/ca.crt -CAkey client-certs/ca-key.pem -out client-certs/tls.crt -CAcreateserial
其中
<client_name
> 对于每个路由器客户端是唯一的。创建包含使用在前面的步骤中创建的证书为客户端证书签名的 CA 证书的 secret:
$ oc create secret generic client-ca-secret --from-file=ca.crt=client-certs/ca.crt --from-file=tls.crt=client-certs/ca.crt --from-file=tls.key=client-certs/ca-key.pem