phpのcurl(35) Unknown SSL protocol error in connectionの対処法

cURLは、さまざまなプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供するプロジェクトです。


PHPcURLサポート機能付きでコンパイルすると、curl 関数を使用可能となります。


今回は、決済モジュールへのリクエストが必要になり、エラーで躓いたので、エラーの対処方法をメモしておきます。


正しいSSLプロトコルを設定
curl_setopt($curl, CURLOPT_SSLVERSION, 3);

curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
or
curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2); //(Added in 7.34.0)

デフォルトでは PHPが自動的に判断しますが、これを手動で設定する必要がある場合もあるようです。
※追記(2014/10/19) POODLE SSLv3.0 脆弱性問題対応のためSSLv3ではなく、TLSでアクセスするように修正


暗号のリストの設定

curl_setopt($curl, CURLOPT_SSL_CIPHER_LIST, 'rsa_rc4_128_sha');

SSLでは、クライアントがサポートしている暗号アルゴリズムのリストをサーバーに提示し、サーバーが適当なものを選ぶ仕組みになっています。したがって、相手さえまともなら、128ビットRC4や、256ビットAESなど、より強いアルゴリズムが選ばれるので問題はないはずなのですが。Webサーバーによっては暗号のリストの設定をしないとうまくいかないこともあるようです。


暗号アルゴリズムが解らない場合は、SSLのページで、右クリック・メニューから「ページの情報を表示」を選ぶと、使用されている暗号アルゴリズムを確認できます。以下のコマンドでも確認することができます。


暗号リスト確認コマンド
$ curl https://<対象サイト> --sslv3 --head --ciphers rsa_rc4_128_sha

$ curl https://<対象サイト> --tlsv1 --head --ciphers rsa_rc4_128_sha

※追記(2014/10/19) POODLE SSLv3.0 脆弱性問題対応のためSSLv3ではなく、TLSでアクセスするように修正

PHPでUUID生成 - PECLでUUID拡張モジュールのインストール

UUID (Universally Unique Identifier) とは (1)誰でも自由に生成できる (2)世界中でただ一つのユニークな番号 のことです。

UUIDはユニークな値であることを前提に使えるため、様々な用途で使用されています。


PHPでUUID(Universally Unique Identifier)を生成するにはいくつか方法があるのですが、今回はPECL(PHP拡張モジュール)のuuid拡張モジュールをインストールしてUUIDを取得できるようにしてみました。


インストールをメモしておきます。


1.PECLでUUID拡張モジュールのインストール

# pecl install uuid


以下のようなエラーが出てしまった場合

# checking uuid/uuid.h usability... no
# checking uuid/uuid.h presence... no
# checking for uuid/uuid.h... no
# configure: error: 'uuid/uuid.h' header not found
# ERROR: `/var/tmp/uuid/configure --with-uuid' failed


libuuidをインストールすれば解決します。

# yum -y install libuuid-devel


2.php.iniにモジュールを追加

extension=uuid.so


3.Apacheの再起動

# /etc/rc.d/init.d/httpd restart



実行例

<?php
  echo uuid_create(UUID_TYPE_RANDOM);
?>

●実行結果
95c889f7-8644-4848-9114-7eecba3f3354


先月読んだ本 2014.3

先月読んだ本です。


Think Simple ―アップルを生みだす熱狂的哲学

Think Simple ―アップルを生みだす熱狂的哲学

複雑には誰でも作れます。シンプルに作るのはほんとに難しいですよね。


俺のイタリアン、俺のフレンチ

俺のイタリアン、俺のフレンチ

低価格で勝負するのは経営的に長続きさせるのは難しいような。俺のイタリアン俺のフレンチはどうなるんだろ。

サイトのスクリーンショットを撮る「wkhtmltopdf」

サイトのスクリーンショットを撮る必要があったので「wkhtmltopdf」を使用することにしました。インストール・コマンドをメモしておきます。

 

Linux64-Bit版へのインストール

# cd /usr/local/src
# wget http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.0/wkhtmltox-linux-amd64_0.12.0-03c001d.tar.xz
# tar -Jxvf wkhtmltox-linux-amd64_0.12.0-03c001d.tar.xz
# cp wkhtmltox/bin/wkhtmltoimage /usr/local/bin/

 

コマンド

# wkhtmltoimage http://google.com google.jpg

画質の指定

# wkhtmltoimage --quality 50 http://google.com google.jpg

幅・高さの指定

# wkhtmltoimage --height 800 --width 1280 http://google.com google.jpg

先月読んだ本 2014.2

先月読んだ本です。

 

 何かいろんなことが言われていますが、Google Glass発売されたら買おうかな。本書にも書かれていますが、ウェアラブルはスポーツと相性がいいんですよね。何かアプリ作りたいな。

 

 今はまだ月に100キロくらいしか走ってないけど、ウルトラマラソン挑戦しようかな。フルマラソンも走ったことないけど。

PROZZA -プロッツァ-ミレット(miletto)の修理対応

プロッツァの電動バイクミレットに乗っているのですがよく壊れます。購入して9ヵ月で今回の修理で5回目です。2ヵ月で1回のペースでどこか故障します...

 

電動バイクは普通のバイク店で修理してもらえないので、まずは販売元のプロッツァに電話して修理をお願いすることになります。

 

今回はまだ3000キロくらいしか走ってないのにブレーキパッドがすり減ってしまったようで修理をお願いしたのですが。

 


自分:「ブレーキの効き悪いので修理をお願いします。」

 

プロッツァ:「ブレーキのアジャスターで調節してみて下さい。」

 

自分:(ええ...バイクに詳しくない人でもアジャスターいじらないといけないの?)

自分:「ブレーキはもうきつくてブレーキパッドがすり減っているようでロックがかかる感じなんですが...」

 

プロッツァ:「では修理店をご紹介します。」

 

自分:(ではって...)

自分:「保証期間内なので、プロッツァさん経由で修理ではないんですか?」

 

プロッツァ:「ブレーキパッドは消耗品ですので保証外になります。」

 

自分:「バイクの専門家ではないので本当にブレーキパッドが悪いのかはわからないのですが...」

 

プロッツァ:「ブレーキパッド以外の故障だった場合はお電話ください。」


 

プロッツァの電動バイクミレットはこういう対応のようです。この対応は違うような気がします。

 

ブレーキ周りの修理は2回目だし、ブレーキ周りの性能が悪いみたいです。突然ブレーキが効かなくなりそうで怖いです。保証が切れて乗るのは危険ですね。

 

おおらかにいこう。

先月読んだ本 2014.1

先月読んだ本です。

 

決定版 ハーバード流“NO”と言わせない交渉術 (知的生きかた文庫)

決定版 ハーバード流“NO”と言わせない交渉術 (知的生きかた文庫)

 

 交渉は難しい。

 

 日本の大企業の時代は終わりかけていますね。日本のために復活してほしいという思いもあるんですが、新しい企業が出てくるほうがいいんでしょうね。