opensslコマンドでTLSバージョンを指定して疎通確認する方法について new!

「ダウンロード」公開ページに用意してある SSL-Key-SHA2a.zipもしくはSSL-Key-SHA2.zip をダウンロードし、解凍して得られるWindows用の openssl.exe コマンドを使用することで、SSL/TLS通信を使った疎通確認、さらにTLSバージョンを指定しての疎通を確認することができます。

465番ポートを指定しTLSバージョンを特に指定しないSSL/TLS通信での疎通確認は、Windowsマシンからコマンドプロンプトを開き openssl.exe コマンドで次の書式により確認できます。"CERTIFICATE.BAT" バッチファイルで証明書ファイルを作成した場合は中間証明書は作成されませんので、"-CAfile cacert.pem" というオプションを付けて確認します。またFreeBSDには openssl がデフォルトでインストールされていますので openssl コマンドから同様に確認できます。疎通可否が確認できたら、quitコマンドで抜けられます。
[書式]
openssl s_client -connect "サーバIP":465 -CAfile cacert.pem
[実行例]
openssl s_client -connect 192.168.xx.xx:465 -CAfile cacert.pem

465番ポートを指定しTLSのバージョンを限定し1.3でつながるかどうか決めうちして確認するには、さらにオプションを追加します。TLS1.2や1.1などの確認方法もそれに準じます。疎通が確認できたら、quitコマンドで抜けられます。
[書式]
openssl s_client -connect "サーバIP":465 -CAfile cacert.pem -tls1_3
openssl s_client -connect "サーバIP":465 -CAfile cacert.pem -tls1_2
openssl s_client -connect "サーバIP":465c -tls1_1

疎通可の確認事例については下記を参考にしてください。
[TLSバージョン指定で疎通可の確認事例]
openssl s_client -connect 192.168.xx.xx:465 -CAfile cacert.pem -tls1_3

CONNECTED(00000140)
depth=1 C = JP, ST = Tokyo, L = Shinjuku-ku, O = E-Post, OU = Sup, CN = E-Post, emailAddress = xxxx@yyyy.jp
verify return:1
depth=0 C = JP, ST = Tokyo, O = E-Post, OU = Sup, CN = E-Post, emailAddress = xxxx@yyyy.jp
verify return:1
---
Certificate chain
0 s:C = JP, ST = Tokyo, O = E-Post, OU = Sup, CN = E-Post, emailAddress = xxxx@yyyy.jp
i:C = JP, ST = Tokyo, L = Shinjuku-ku, O = E-Post, OU = Sup, CN = E-Post, emailAddress = xxxx@yyyy.jp
---
Server certificate
-----BEGIN CERTIFICATE-----
・・・(中略)・・・
-----END CERTIFICATE-----
subject=C = JP, ST = Tokyo, O = E-Post, OU = Sup, CN = E-Post, emailAddress = xxxx@yyyy.jp
issuer=C = JP, ST = Tokyo, L = Shinjuku-ku, O = E-Post, OU = Sup, CN = E-Post, emailAddress = xxxx@yyyy.jp
---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 1743 bytes and written 316 bytes
Verification error: unable to verify the first certificate
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 21 (unable to verify the first certificate)
---
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
Protocol : TLSv1.3
Cipher : TLS_AES_256_GCM_SHA384
Session-ID: ・・・(中略)・・・
Session-ID-ctx:
Resumption PSK: ・・・(中略)・・・
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 7200 (seconds)
TLS session ticket:
・・・(中略)・・・
Start Time: 1601993644
Timeout : 7200 (sec)
Verify return code: 21 (unable to verify the first certificate)
Extended master secret: no
Max Early Data: 0
---
read R BLOCK
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
Protocol : TLSv1.3
Cipher : TLS_AES_256_GCM_SHA384
Session-ID: ・・・(中略)・・・
Session-ID-ctx:
Resumption PSK: ・・・(中略)・・・
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 7200 (seconds)
TLS session ticket:
・・・(中略)・・・
Start Time: 1601993644
Timeout : 7200 (sec)
Verify return code: 21 (unable to verify the first certificate)
Extended master secret: no
Max Early Data: 0
---
read R BLOCK
220 yyyy.jp E-POST ESMTP Receiver (5.1x) x64 Bld:CABJGAFHB Tue, 06 Oct 2020 23:14:04 +0900
quit

(関連FAQ)
SSL/TLS通信使用時にTLS1.3のみ有効にさせる方法について
SSL/TLSやSTARTTLSのTLSバージョンやChipherの表記をヘッダに記録するようにしたい