3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PHPのcURLがTLS1.2に対応しているか確認する

Posted at

はじめに

WebAPIで連携しているサービスから
「TLS1.0とTLS1.1を廃止して、TLS1.2のみ対応します」
と連絡がきたので、WebAPIを呼び出しているphpのcURLがTLS1.2に対応しているか確認したいと思います。

環境

CentOS 7
php 5.4.16
cURL 7.29.0

コード

phpのcURLでYahoo!セキュリティセンターのサイトに接続してみます。

tls.php
<?php
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://security.yahoo.co.jp/news/tls12.html');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $response = curl_exec($ch);
    $statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    echo $response;
    echo "\n";
    echo 'status code: ' . $statusCode;
    echo "\n";
?>

上のコードをコマンドラインで実行して、HTMLのレスポンスとステータスコード200が返ってくれば成功です。

$ php tls.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
:
省略
:
</body>
</html>
status code: 200

cURLはTLS1.2に対応しているのが確認できました。

TLSのバージョンを指定する

curl_setoptでTLSのバージョンを指定することもできます。

curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_0);

TLS1.0を指定したのでリクエストは失敗します。接続すらできないのでステータスコードは0になります。

$ php tls.php

status code: 0

以上で終わります。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?