「curlでTLSバージョンを指定する方法」の版間の差分

提供: セキュリティ
移動: 案内検索
(ページの作成:「Transport Layer Security とは、暗号化通信で使われる仕組みです。UNIXのcurlコマンドは、HTTPクラインです。curlでTLSのバージョン...」)
 
 
(同じ利用者による、間の1版が非表示)
行6: 行6:
  
 
== 概要 ==
 
== 概要 ==
UNIX の curl コマンドは、HTTPクライアントです。コマンドラインで、HTTPの通信を行うことができます。 curl は、TLS のバージョンを指定するオプションがあります。 TLS は、[[Transport Layer Security]] の略で、暗号化通信の仕組みです。
+
UNIX の curl コマンドは、[[HTTP]]クライアントです。コマンドラインで、HTTPの通信を行うことができます。 curl は、TLS のバージョンを指定するオプションがあります。 TLS は、[[Transport Layer Security]] の略で、暗号化通信の仕組みです。
  
 
任意の TLS を指定する場合には
 
任意の TLS を指定する場合には
行31: 行31:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
curl --tlsv1.3 https://foo.bar.com/
 
curl --tlsv1.3 https://foo.bar.com/
 +
</syntaxhighlight>
 +
== 指定したTLSのバージョンに対応していない場合 ==
 +
[[Webサーバ]]が指定したTLSバージョンに対応していない場合は、 curl コマンドは接続に失敗して、以下のようになります。
 +
<syntaxhighlight lang="bash">
 +
$ curl --version
 +
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8
 +
libidn/1.32 librtmp/2.3
 +
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3
 +
pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
 +
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL
 +
libz TLS-SRP UnixSockets
 +
$ curl --tlsv1.0 https://login.starbucks.co.jp/login
 +
curl: (35) gnutls_handshake() failed: The TLS connection was non-properly terminated.
 +
[1]    8832 exit 35    curl --tlsv1.0 https://login.starbucks.co.jp/login
 
</syntaxhighlight>
 
</syntaxhighlight>
 
== メモ ==
 
== メモ ==
 
Ubuntu に curl をインストールしたら、依存関係として libcur3-gnutls が入ってきた。
 
Ubuntu に curl をインストールしたら、依存関係として libcur3-gnutls が入ってきた。
 
== 関連項目 ==
 
== 関連項目 ==
* [[Transport Layer Security]]
+
* [[Transport Layer Security]] (TLS)
 +
* [[Hypertext Transfer Protocol]] (HTTP)
 +
* [[HTTPS]]
 
* [[メインページ]]
 
* [[メインページ]]
 
<!-- vim: filetype=mediawiki
 
<!-- vim: filetype=mediawiki
 
-->
 
-->

2018年3月24日 (土) 18:29時点における最新版

Transport Layer Security とは、暗号化通信で使われる仕組みです。UNIXのcurlコマンドは、HTTPクラインです。curlでTLSのバージョンを指定して実行することができます。

読み方

Transport Layer Security

概要

UNIX の curl コマンドは、HTTPクライアントです。コマンドラインで、HTTPの通信を行うことができます。 curl は、TLS のバージョンを指定するオプションがあります。 TLS は、Transport Layer Security の略で、暗号化通信の仕組みです。

任意の TLS を指定する場合には

  • --tlsv1.0
  • --tlsv1.1
  • --tlsv1.2

といったオプションを指定します。

インストール

Ubuntu の場合

sudo apt install curl

使い方

curl --tlsv1.0 https://foo.bar.com/
curl --tlsv1.1 https://foo.bar.com/
curl --tlsv1.2 https://foo.bar.com/

おそらく将来的には、TLS1.3に対応され、以下のようになると考えられます。

curl --tlsv1.3 https://foo.bar.com/

指定したTLSのバージョンに対応していない場合

Webサーバが指定したTLSバージョンに対応していない場合は、 curl コマンドは接続に失敗して、以下のようになります。

$ curl --version
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8
libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3
pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL
libz TLS-SRP UnixSockets
$ curl --tlsv1.0 https://login.starbucks.co.jp/login
curl: (35) gnutls_handshake() failed: The TLS connection was non-properly terminated.
[1]    8832 exit 35    curl --tlsv1.0 https://login.starbucks.co.jp/login

メモ

Ubuntu に curl をインストールしたら、依存関係として libcur3-gnutls が入ってきた。

関連項目