わかりました、これはここ数日間私を怒らせています。
私の RHEL サーバーは会社のファイアウォールの内側にあります。照会している URL api.mgmt.cloud.vmware.com 用に提示された 3 つの IP に対して、ポート 443 とポート 80 (受信と送信) でルールを開くように要求しました。私が知る限り、これは完了しており、接続にある程度の成功を収めています.
私が見る限り、これは接続の問題ではなく、証明書に関係があると思います。たとえば、ポート 443 でこの URL に正常に telnet できます。
の出力openssl s_client -connect api.mgmt.cloud.vmware.com:443 -servername api.mgmt.cloud.vmware.com -showcerts
編集済みは私が作成したもので、公開されているため不要かもしれませんが、念のため...
CONNECTED(00000003)
depth=4 C = US, O = "Starfield Technologies, Inc.", OU = Starfield Class 2 Certification Authority
verify return:1
depth=3 C = US, ST = Arizona, L = Scottsdale, O = "Starfield Technologies, Inc.", CN = Starfield Services Root Certificate Authority - G2
verify return:1
depth=2 C = US, O = Amazon, CN = Amazon Root CA 1
verify return:1
depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon
verify return:1
depth=0 CN = api.mgmt.cloud.vmware.com
verify return:1
write:errno=110
---
Certificate chain
*REDACTED*
---
Server certificate
subject=/CN=api.mgmt.cloud.vmware.com
issuer=/C=US/O=Amazon/OU=Server CA 1B/CN=Amazon
---
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 5319 bytes and written 126 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES128-GCM-SHA256
Session-ID: 6D9A431FAFA4C4B41F16F9B676208CBAC94C669E0361EF1A7A4D1D65C33E4A6C
Session-ID-ctx:
Master-Key: *REDACTED*
Key-Arg : None
Krb5 Principal: None
PSK identity: None
PSK identity hint: None
Start Time: 1629846227
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
証明書が返されますが、非常に長い遅延の後、タイムアウトになる可能性があります。
write:errno=110
特に、出力が 15 分ほどハングする場所である が何を意味しているのかについての情報を見つけることができません。
最終的に、この URL を照会する必要がある Python スクリプトがありますが、SSL ハンドシェイクで失敗しています。私は多くのグーグルを行い、次のことを試しました。
MTU を増やしました。
証明書バンドルのパスを環境変数として設定します。
wget、curl、両方とも完了に失敗、応答が空
すべてのコマンドで strace を実行しましたが、私の知る限り有用なものは何も見つかりませんでした。
openSSl バージョンは 1.1.1g FIPS 2020 年 4 月 21 日
カールの出力:
curl -v https://api.mgmt.cloud.vmware.com
* About to connect() to api.mgmt.cloud.vmware.com port 443 (#0)
* Trying 52.33.236.153...
* Connected to api.mgmt.cloud.vmware.com (52.33.236.153) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /path/to/tls/certs/ca-bundle.crt
CApath: none
* Operation timed out after 300160 milliseconds with 0 out of 0 bytes received
* Closing connection 0
ローカル マシンからの接続は良好です。 の出力はopenssl s_client -connect api.mgmt.cloud.vmware.com:443 -servername api.mgmt.cloud.vmware.com -showcerts
、その行を除いてまったく同じでwrite:errno=110
あり、数秒以内に完了します
これを解決するのに役立つポインタを感謝します。
ありがとう。