我们如何重新创建TLS证书并在 Prisma Cloud Compute Console 中配置它们?
5913
Created On 09/19/23 08:57 AM - Last Modified 01/03/25 05:14 AM
Objective
我们经常遇到由于生成/签署TLS证书过程中出现故障而无法配置TLS计算证书的问题。因此,本文旨在协助并阐明生成证书所涉及的步骤以及如何在 Compute UI 中配置它们。请注意,这些证书是自签名 CA,这意味着它们不是由公认的机构签名的。因此,默认下它们不会安装在浏览器中,这就是您可能会遇到“证书不受信任”警告的原因。
Environment
-
Prisma Cloud 自托管
Procedure
- Firstly, in order to do all of these things, we need to have
opensslinstalled in our host.
要重新创建的证书:
-
控制台证书.pem
- 控制台密钥.pem
目标目录: /var/lib/tistlock/custom-certificates
为了实现本指令的目的,在传输到目标目录之前,所有文件都将被创建并存储在不同的文件夹中。
mkdir /var/lib/twistlock/certs-new cd /var/lib/twistlock/certs-new
- 先决条件:
为了签署证书,必须创建证书颁发机构使用的文件:
- 请求者
- SAN配置文件
- 扩展文件.ext
请在以下部分查找文件内容:
- req_ca(CA要求)
echo "[ req ] default_bits = 4096 default_md = sha256 distinguished_name = req_distinguished_name x509_extensions = req_ext prompt = no [ req_distinguished_name ] C=US ST=CA O=MyOrg, Inc. CN=rootCA [ req_ext ] basicConstraints = critical, CA:true" >req_ca
- Subject Alternative Name(使用者备用名称-SAN)(san.cnf)
echo "[req] default_bits = 2048 distinguished_name = req_distinguished_name req_extensions = req_ext x509_extensions = x509_ext prompt = no [ x509_ext ] subjectKeyIdentifier = hash authorityKeyIdentifier = keyid,issuer [ req_distinguished_name ] C = US ST = CA O = MyOrg, Inc. CN = 10.180.29.195 [ req_ext ] basicConstraints = CA:FALSE keyUsage = digitalSignature, keyEncipherment subjectAltName = @alt_names [alt_names] IP.1 = 10.180.29.195 IP.2 = 127.0.0.1" >san.cnf
- 扩展文件.ext
echo "[req] basicConstraints = CA:FALSE keyUsage = digitalSignature, keyEncipherment subjectAltName = @alt_names [alt_names] IP.1 = 10.180.29.195 IP.2 = 127.0.0.1"> extFile.ext
- 创建证书颁发机构
- 创建自签名CA:
生成CA证书的私钥
openssl genrsa -out MyCA-key.pem
使用上面的密钥创建自签名CA证书
openssl req -x509 -new -nodes -key MyCA-key.pem -sha256 -days 1825 -out MyCA-cert.pem -config req_ca
现在我们有了自己的CA证书,我们可以用它来签署其他证书请求
记住
MyCA-key.pem 只是CA私钥
MyCA-cert.pem 是使用 MyCA-key.pem 作为私钥的自签名CA证书
- 用户证书加密
用户证书加密的私钥
openssl genrsa -out user-key.pem 2048
创建证书请求
openssl req -new -config san.cnf -key user-key.pem -out user-request.pem
现在我们有了自己的证书请求,用自己的私钥签名,用于用户证书加密
- 由CA机构签署用户证书
- 使用创建的CA (MyCA-cert.pem)及其创建的私钥(MyCA-key.pem)签署用户证书请求
- 用户证书加密的私钥
openssl x509 -req -in user-request.pem -CA MyCA-cert.pem -CAkey MyCA-key.pem -CAcreateserial -days 1825 -sha256 -extfile extFile.ext -extensions req -outform PEM -out user-cert.pem
- 创建自定义证书所需的所有证书
- HTTP控制台证书:
- 创建HTTPS私钥(MyCA-key-https.pem)
openssl genrsa -out MyCA-key-https.pem
- 使用上面的密钥创建HTTPS自签名CA证书(MyCA-cert-https.pem)
openssl req -x509 -new -nodes -key MyCA-key-https.pem -sha256 -days 1 -out MyCA-cert-https.pem -config req_ca
- 创建控制台私钥(console-key.pem)
openssl genrsa -out console-key.pem 2048
- 使用上面的私钥创建控制台证书(console-cert.pem)
openssl req -new -config san.cnf -key console-key.pem -out 用户请求.pem
openssl x509 -req -in 用户请求.pem - CA MyCA-cert-https.pem -CAkey MyCA-key-https.pem -CAcreateserial -days
1 -sha256 -extfile extFile.ext -extensions req -outform PEM -out console-cert.pem
chmod 777 控制台密钥.pem
- 自定义证书的 Twistlock 控制台配置
- 创建文件夹 custom-certificates:
mkdir /var/lib/twistlock/custom-certificates
- 将创建的证书复制或移动到“custom-certificates”目录:
pwd ls -la cp * /var/lib/twistlock/custom-certificates/ ls -la /var/lib/twistlock/custom-certificates/
- 重新启动docker控制台:
docker ps docker restart twistlock_console docker ps
- 检查 docker 控制台证书
- 访问docker控制台并检查确实有一个包含自定义证书的文件夹:
docker ps docker exec -ti <docker_console_container_id> bash ls -la /var/lib/twistlock/ ls -la /var/lib/twistlock/custom-certificates
- 在控制台中检查自定义证书
转到管理 > 日志 > 控制台,搜索自定义证书,然后搜索证书
Additional Information
参考文档: