##テスト環境から外部連携落ちた
アプリのテストから外部通信を落ちてた問題でした。ずっとcurl・opensslのエラーが出てました。Mac ターミナルから接続確認すると通常に連携できてました。Dockerコンテナ内で何かおかしいと感じました。
###curlエラー内容
LS handshakeのすぐ後に不明のsslエラーで落ちてました。
- SSLv3, TLS handshake, Client hello (1):
[root@xyzabc web]# curl -v -H GET 'https://google.com'
* About to connect() to google.com port 443
* Trying 142.251.42.174... connected
* Connected to google.com (142.251.42.174) port 443
* successfully set certificate verify locations:
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* SSLv3, TLS handshake, Client hello (1):
Unknown SSL protocol error in connection to google.com:443
* Closing connection #0
curl: (35) Unknown SSL protocol error in connection to google.com:443
-
google以外も他のサイトでも同じエラーで通信落ちてた。インタネットで色々調べたら、curlのバージョン古いなど色々記事出てました。
-
次openssl/curlのバージョンの問題とお思って、それを確認してました。
以下のバージョンの問題も無かった、別システムで問題なく同じバージョンで全部スムーズに動いてた。
[root@てすと環境web]# curl -V
curl 7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
Protocols: tftp ftp telnet dict ldap http file https ftps
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
-- openssl version check
[root@てすと環境web]# rpm -qa | grep -i openssl
openssl-0.9.8e-40.el5_11
openssl-0.9.8e-40.el5_11
openssl-devel-0.9.8e-40.el5_11
openssl-devel-0.9.8e-40.el5_11
-- openssl version check
[root@てすと環境web]# rpm -qa | grep -i curl
curl-7.15.5-17.el5_9
curl-7.15.5-17.el5_9
curl-devel-7.15.5-17.el5_9
curl-devel-7.15.5-17.el5_9
-
次問題の切り分けとして、docker-image古いかもと考えて、調べてました
- 全部のdocker imageを削除した。
- 最新のimageをpullした
- 再度curlを試す
- 結果:また同じエラー出ました。Unknown SSL protocol error in connection to www.google.com:443
- こちらを試してもエラーの詳細も同じ文言出てました。
- curl -v -I -4 'https://google.com'
-
docker image最新か確認して、pullか削除する
-
ターミナルでdocker imagesを実行する
-
docker rm imagesXX
REPOSITORY TAG IMAGE ID CREATED SIZE
abc/テスト1 テスト_最新 っっっっっっx 10 days ago 4.23GB
abc/テスト2 <none> っっxxsfc2っっっx 5 weeks ago 3.97GB
abc/テストサビース1 最新 xっっっっっっっx 4 months ago 1.09GB
サビース21 最新 xっxxsfc2っっっっx 4 months ago 89.1MB
-
パソコン再起動で解決されるかも知れません、一度やってみました。
- 結果:まだ同じエラー出てた
-
最後にDocker Engineのバージョンを確認するしかなかった、
- Docker desktop -> Preferencesー>Docker Engineにクリックするとバージョン情報などを表示される :v20.01.12
-
上記のdocker engineのバージョン最新にアップデート後、再度curlを試した
- 結果:成功した。responseも返ってきた!
[root@てすと環境web]# curl -v -H GET 'https://google.com'
* About to connect() to google.com port 443
* Trying 142.251.42.174... connected
* Connected to google.com (142.251.42.174) port 443
* successfully set certificate verify locations:
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* SSLv3, TLS handshake, Client hello (1):
SSLv3, TLS handshake, Server hello (2):
.......
SSLv3, TLS handshake, Finished (20):
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="https://www.google.com/">here</A>.
</BODY></HTML>
* Connection #0 to host google.com left intact
* Closing connection #0
* SSLv3, TLS alert, Client hello (1):
[root@48da8a1f205a web]#
参考
・Curl Options
https://curl.se/docs/manpage.html
・docker系
https://docs.docker.jp/engine/reference/run.html#clean-up-rm
https://docs.docker.com/engine/release-notes/#20100
https://www.memotansu.jp/docker/692/
https://docs.docker.com/engine/reference/commandline/image_rm/
https://docs.docker.com/engine/reference/commandline/rmi/