一部の外部サーバーには、自分の身元を認証するキーセットがあります。みんな一つずつ書くよルート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と同じようにするにはどうすればよいですか?