[Ruby, Mac] Net::HTTPでSSL使用時にcertificate verify failed

Mac + OpenSSL (homebrew) + rbenvという環境でNet::HTTP使ってSSLでの通信をしようと思ったらエラーがでた。

net/http.rb:917:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)

たとえば、こんな感じのコードでhttpsなURLにアクセスする場合。

require 'net/https'
require 'uri'

url = URI.parse('https://www.google.co.jp/')
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
https.start do |http|
  res = http.get('/')
  puts res.body
end

そういえば前にもこのエラー見たなぁとも思いながら調べてみる。
ようするに、クライアント側にバンドルされるべきの証明書がないのが原因らしい。
“[Ruby, Mac] Net::HTTPでSSL使用時にcertificate verify failed” の続きを読む

今は技術者モードで

ここ2週間くらいは「技術者モード」で生活している。

技術者モードっていうのはなにかというと、私の中で技術を生活のメインテーマとしているということ。

技術といってもぼんやりしてるのだけど、それはプログラミングだったり、サーバ運用だったりするわけです。

プログラミングをもう少し見るとRubyだったりJavaScriptだったりObjective-Cだったりするのです。
“今は技術者モードで” の続きを読む

Perlのパスをコマンドで一括置換 (CGI)

データを別サーバに移行してたらPerlで書かれたCGIが入っていて、動作確認したら動かなかった。

あれと思って調べてみたら、Perlのパスが”/usr/local/bin/perl”になってたのが原因だった。

いつも使ってるサーバでのパスは”/usr/bin/perl”だ。

どうも以前はシンボリックリンクで対応したようだけど、今回はファイルの方を書き換えることにした。

ln -s /usr/bin/perl /usr/local/bin/perl

それで、スクリプトのパスの方を書き換えようとしたら、複数ファイルに書かれていた・・・

ということで、コマンドの組み合わせを考えてみる。

カレントディレクトリ以下の”/usr/local/bin/perl”が含まれるファイルはgrepで探せる。

grep -rl '/usr/local/bin/perl' *

パスの置換はsedでできるのでxargsにパイプして一括置換できましたよと。

grep -rl '/usr/local/bin/perl' * | xargs sed  -i 's/\/usr\/local\/bin\/perl/\/usr\/bin\/perl/'

実行するとファイルが書き換えられるので、ちゃんとバックアップとってお試し下さい。

.ssh/config でホスト名のワイルドカードを使用する

AWSのEC2を検証用に使うようになってきた。
Elastic IPで固定IPを振るほどでもないので、インスタンスを立ち上げるたびにIPつまりpublic DNSがころころ変わる。

設定をするのにSSHでログインするんだけど、SSHのデフォルトのポートを22にしてないのでコマンド打つときに毎回-p 22と打ったり、ユーザ名にec2-userと打つのがめんどくさくなってきた。

ssh -p 22 ec2-user@ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com

.ssh/configでワイルドカードが使えればな〜と思って調べたら、使えることがわかった。

.ssh/configの最初の方に次のような記述を追加しておいた。

Host *.compute.amazonaws.com
    User ec2-user
    Port 22

これでssh + public DSNを打つだけで新しいインスタンスにログインできるようになった。

ssh ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com

.ssh/configをよく見たら最後の方に

Host 172.16.*
    Port 22

とか書いてあった。

どうやらワイルドカード使えることを忘れていただけらしい・・・

SSH_CONFIG (5)

気もそぞろ

ここのところ貧乏ゆすりが気になる。

新幹線の同じ列の向かいの席の人やカフェで隣に座った人が貧乏ゆすりをしていることがあった。

あと、後ろの若い学生風の人が勉強しながらペンをかなりの音を出してカチカチやってることがあった。

昔ほどそれを見てもあまりイライラはしないんだけど、気になりはする。

たぶん自分では無意識にやっていて気づいてないんだろうなと。
そして、やってる本人は当然気にならないんだろう。

貧乏ゆすりですごく自分がイライラしたという話ではなく、あれってなんでやってるんだろうと気になったのだ。

しばらく考えたんだけど、貧乏ゆすりをしてるときって「気もそぞろ」なんじゃないかと考えた。

自分は貧乏ゆすりはしない(と思う)けど、気もそぞろだと何でも無いのに物を落としたり、ぶつけたり動作が乱暴になることがある。

そんなとき、過去や未来のことを気にしたりしてるんだろうな。

貧乏ゆすりじゃなくても何かしら無意識の動作をして自分も周りのひとをイラつかせてるのかもしれないね。

気をつけよう。