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には、答えの1つから読み取ったキーパスワードなど、いくつかの異なる設定と要件がありますか? Ubuntuと同じようにするにはどうすればよいですか?

関連情報