5.21. SSL 和 TLS 故障排除

本节介绍如何解决安全套接字层/交易层安全性(SSL/TLS)的问题。

如果您遇到与自签名 SSL 证书相关的问题,您可以下载和使用远程主机证书,如本节所述。例如,典型的错误包括 SSL certificate problem: self signed certificateself signed certificate in certificate chain

流程

  1. 使用 openssl 下载远程主机证书。例如:

    $ echo | openssl s_client -showcerts -servername self-signed.badssl.com -connect self-signed.badssl.com:443 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > self-signed-cert.pem
  2. 确保证书使用 curl 正常工作。例如:

    $ SSL_CERT_FILE=self-signed-cert.pem curl -v https://self-signed.badssl.com

    如果证书正常工作,您将不再获得 SSL 错误。如果证书无法正常工作,请尝试使用 -k 选项(或其长形式 --insecure)运行 curl 命令。这表示即使对于其他被视为不安全的服务器连接也一样希望继续。

  3. SSL_CERT_FILE 环境变量添加到 3scale 命令。例如:

    $ podman run --env "SSL_CERT_FILE=/tmp/self-signed-cert.pem" -v $PWD/self-signed-cert.pem:/tmp/self-signed-cert.pem egistry.redhat.io/3scale-amp2/toolbox-rhel7:3scale2.11 3scale service list https://{ACCESS_KEY}@{3SCALE_ADMIN}-admin.{DOMAIN_NAME}

    本例使用 Podman 卷在容器中挂载证书文件。它假定该文件位于当前的 $PWD 文件夹中。

    另一种方法是使用 3scale toolbox 镜像作为基础镜像创建您自己的 toolbox 镜像,然后安装您自己的可信证书存储。

其他资源