web-dev-qa-db-ja.com

OpenSSL S_Client Connectを使用しているときに証明書検証を無視する方法

次のコマンドを使用してサーバーに接続しようとしています。

openssl s_client -connect xx.xx.xx.xx:443
 _

エラー:

CONNECTED(00000005)
depth=0 L = XXXXXXX
verify error:num=20:**unable to get local issuer certificate**
verify return:1
depth=0 L = XXXXXXXX
verify error:num=21:**unable to verify the first certificate
verify return:1**
---
Certificate chain
 0 s:/L=XXXX
   i:/C=XXXX
---
Server certificate
-----BEGIN CERTIFICATE-----
....
...
..
<removed cert>
..
...
....
-----END CERTIFICATE-----
subject=xxxxxxx CN=*xxx.xom
issuer=XXXX CA
---
No client certificate CA names sent
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 2281 bytes and written 326 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
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-AES256-GCM-SHA384
    Session-ID: 52A27BC97001D52A7DA4A73FBA87C7DD2902A0C55B0AE9FAA87A3A8DBA94A7CE
    Session-ID-ctx:
    Master-Key: ECD435DCDD59B2BAD50A1BF8BAEA39E68058524A082DC219CEE290DB7A80A37AE4E763DF7FA
    TLS session ticket lifetime hint: 300 (seconds)
    TLS session ticket:
    0000 - 5d b4 5c fe ca 2d 54 2e-31 49 74 a6 18 a7 3a f5   ].\..-T.1It...:.
    XXXX
    0080 - ab 5c 0a bc 45 9c 10 01-9f 3b ce 6e ee 1a a6 99   .\..E....;.n....
    0090 - 04 81 ea e0 be a5 91 a2-18 09 d4 b8 90 b7 c7 50   ...............P
    00a0 - f7 7d 73 e5 b1 3d 0d 58-20 07 78 7b 57 c4 34 58   .}s..=.X .x{W.4X

    Start Time: 1566410644
    Timeout   : 7200 (sec)
    **Verify return code: 21 (unable to verify the first certificate)**
---
 _

そのため、コマンドが私が望んでいない証明書を検証しようとしているようです。検証を回避できますか? curl- kフラグに似たものはありますか?

6
Carlsson Evert

OpenSSLのs_clientが彼にしようとしていない限り、間違った証明書で終了することはありません。
[。] -verify_return_error _引数(@bartonjsが@bartonjsによって推奨されているとおり)。

Man Page man 1 s_clientまたは Online の中でそれについてもっと読むことができます。 -verify引数を探してください[〜#〜]注[〜#〜]

サーバー証明書の確認に問題がある場合は、-showcertsオプションを使用して、サーバーによって送信されたすべての証明書を表示できます。

s_clientユーティリティはテストツールであり、証明書検証エラーの後にハンドシェイクを続けるように設計されています。その結果、ピアによって送信された証明書チェーン(信頼できるかどうか)を受け入れます。なしテストアプリケーションは、MITM攻撃に対してそれらを脆弱にするのでこれを行ってはいけません。この現象は-verify_return_errorオプションで変更できます。任意の検証エラーがハンドシェイクを中止して返されます。

あなたが見ている結果が最後の "エラー"あなたが見ているのであれば、それはその瞬間に接続を終了しているサーバー上の他の何かです。 Webサーバーのログの理由が表示されます。

1
Kepi