TLS 证书适用于 Ubuntu 18.04,但不适用于 Centos 7.6

TLS 证书适用于 Ubuntu 18.04,但不适用于 Centos 7.6

我有一组密钥可以向某些外部服务器验证我的身份。他们都使用一个根CA常见发行版中未安装该软件。

我正在使用 Docker 映像验证外部服务器是否响应。

这是在 GitLab CI 脚本中,所以我保留它的格式。

CPI avail Ubuntu:
  stage: checkCpiAvailability
  image: ubuntu:18.04
  script:
    - apt update
    - apt install -y curl wget unzip openssl openssh-client
    - openssl version
    - test/bench/curl/curlRequest.sh

卷曲命令:

curl -v \
  --cacert "$SCRIPT_DIR/target/....crt" \
  --key "$SCRIPT_DIR/target/temp.$KEY_FILENAME.private.key" \
  --cert "$SCRIPT_DIR/target/temp.$KEY_FILENAME.client.crt:$KEY_PASS2" \
  --header "Content-Type: application/soap+xml; charset=utf-8" \
  --data "@$SCRIPT_DIR/../soapSamples/queryRequest-sampleFromSpec.xml" \
  "$SERVICE_URL" \

当我使用 Ubuntu 映像执行此操作时,它可以工作。
但是当我对 Centos 7 映像执行相同操作时,它失败了。

CPI avail Centos7:
  stage: checkCpiAvailability
  image: centos:7
  script:
    - yum -y update
    - yum -y install curl wget unzip openssl openssh-clients
    - openssl version
    - test/bench/curl/curlRequest.sh

错误信息:

* unable to load client key: -8178 (SEC_ERROR_BAD_KEY)
* NSS error -8178 (SEC_ERROR_BAD_KEY)
* Peer's public key is invalid.
* Closing connection 0
curl: (58) unable to load client key: -8178 (SEC_ERROR_BAD_KEY)

SO 上有一些问题可以解决这个错误,但我想知道如果它使用 Ubuntu 映像,这是否是我的错。

我需要安装额外的东西吗?或者 Centos 是否有一些不同的设置和需求,例如我在其中一个答案中读到的密钥密码?我怎样才能让它和Ubuntu中一样呢?

相关内容