TLS のテスト用のサーバとクライアントの実行#
OpenSSL のコマンドラインにはテスト用のサーバとクライアントを実行する機能がある。
サーバとクライアントの起動手順#
ファイルの準備
認証局の証明書のハッシュの生成
$ cd test $ openssl rehash ./ca-certificates $ ls ./ca-certificates/ baf3acd5.0 ca.crt
拡張子 .0 のシンボリックリンクが生成される。
サーバの起動
$ cd server $ openssl s_server -accept 127.0.0.1:12345 -cert server.crt -key server.key --pass pass:test -CApath ../ca-certificates Using default temp DH parameters ACCEPT
クライアントの起動
$ cd test $ openssl s_client -connect 127.0.0.1:12345 -CApath ./ca-certificates -brief -no_ign_eof < /dev/null Can't use SSL_get_servername CONNECTION ESTABLISHED Protocol version: TLSv1.3 Ciphersuite: TLS_AES_256_GCM_SHA384 Peer certificate: C = JP, L = Test, OU = Test, CN = 127.0.0.1, emailAddress = test@example.com Hash used: SHA256 Signature type: RSA-PSS Verification: OK Server Temp Key: X25519, 253 bits DONE
Hint
途中にある以下を見ることで、認証できたことが確認できる。
Verification: OK
Ctrl + C でサーバを終了させる。
TLS 相互認証#
TLS の相互認証の検証は、以下のように行うことができる。
ファイルの準備
認証局の証明書のハッシュの生成
$ cd test $ openssl rehash ./ca-certificates $ ls ./ca-certificates/ baf3acd5.0 ca.crt
拡張子 .0 のシンボリックリンクが生成される。
サーバの起動
$ cd server $ openssl s_server -accept 127.0.0.1:12345 -cert server.crt -key server.key -CApath ../ca-certificates --pass pass:test -Verify 10 verify depth is 10, must return a certificate Using default temp DH parameters ACCEPT
Note
-Verify オプションでクライアントの認証を求めるようにしている。
クライアントの起動
$ cd test $ openssl s_client -connect 127.0.0.1:12345 -cert client.crt -key client.key --pass pass:test -CApath ../ca-certificates -brief -no_ign_eof < /dev/null Can't use SSL_get_servername CONNECTION ESTABLISHED Protocol version: TLSv1.3 Ciphersuite: TLS_AES_256_GCM_SHA384 Requested Signature Algorithms: ECDSA+SHA256:ECDSA+SHA384:ECDSA+SHA512:Ed25519:Ed448:RSA-PSS+SHA256:RSA-PSS+SHA384:RSA-PSS+SHA512:RSA-PSS+SHA256:RSA-PSS+SHA384:RSA-PSS+SHA512:RSA+SHA256:RSA+SHA384:RSA+SHA512:ECDSA+SHA224:RSA+SHA224 Peer certificate: C = JP, L = Test, OU = Test, CN = 127.0.0.1, emailAddress = test@example.com Hash used: SHA256 Signature type: RSA-PSS Verification: OK Server Temp Key: X25519, 253 bits DONE
Ctrl + C でサーバを終了させる。