最近、Evernoteを活用しようと思い、色々な情報をEvernoteに集約しています。
その一環で、サーバで行っている作業等もEvernoteに集約できないかと思い、
CUIで使えるクライアントを探したところ、Geeknote が使えることがわかりました。
環境は FreeBSD で、pkg を使用しているので、
$ sudo pkg install geeknote
これでインストールできます。楽ですね。
後は、適当に使ってみます。
$ geeknote login >> : Connect to Evernote...Traceback (most recent call last): File "/usr/local/lib/python2.7/site-packages/geeknote/geeknote.py", line 848, in main User().login(**ARGS) File "/usr/local/lib/python2.7/site-packages/geeknote/geeknote.py", line 34, in wrapper return func(*args, **kwargs) File "/usr/local/lib/python2.7/site-packages/geeknote/geeknote.py", line 338, in login if self.getEvernote().auth(): File "/usr/local/lib/python2.7/site-packages/geeknote/geeknote.py", line 141, in auth self.authToken = GNA.getToken() File "/usr/local/lib/python2.7/site-packages/geeknote/oauth.py", line 128, in getToken self.getTmpOAuthToken() File "/usr/local/lib/python2.7/site-packages/geeknote/oauth.py", line 146, in getTmpOAuthToken oauth_callback="https://" + self.url['base'] File "/usr/local/lib/python2.7/site-packages/geeknote/oauth.py", line 103, in loadPage conn.request(method, uri, params, headers) File "/usr/local/lib/python2.7/httplib.py", line 1001, in request self._send_request(method, url, body, headers) File "/usr/local/lib/python2.7/httplib.py", line 1035, in _send_request self.endheaders(body) File "/usr/local/lib/python2.7/httplib.py", line 997, in endheaders self._send_output(message_body) File "/usr/local/lib/python2.7/httplib.py", line 850, in _send_output self.send(msg) File "/usr/local/lib/python2.7/httplib.py", line 812, in send self.connect() File "/usr/local/lib/python2.7/httplib.py", line 1212, in connect server_hostname=server_hostname) File "/usr/local/lib/python2.7/ssl.py", line 350, in wrap_socket _context=self) File "/usr/local/lib/python2.7/ssl.py", line 566, in __init__ self.do_handshake() File "/usr/local/lib/python2.7/ssl.py", line 788, in do_handshake self._sslobj.do_handshake() SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)
むむむ…。
メッセージから察するにルート証明書がない…でしょうか。
そういえば、今月(2014年12月)主要なルート証明書の一つが期限切れを迎えたとか何とか…。であれば、ルート証明書を更新すればよいはず。
色々調べてみたところ、/etc/ssl/ 以下に適切なルート証明書を置いておけばいいらしいことがわかりました。
$ # /etc/ssl 以下に pkg経由でインストールされるルート証明書を置いておく $ sudo ln -s /usr/local/share/certs/ca-root-nss.crt /etc/ssl/cert.pem $ # ルート証明書をネットで入手(ここはあくまで自己責任で) $ sudo curl http://curl.haxx.se/ca/cacert.pem -O /etc/ssl/cert2.pem
この状態で一端、ログアウトし、再度ログインし…
$ geeknote login
おお、次はエラーが起きずにちゃんと使えました!(使い方は割愛)
ちなみに、RubyGems や GitHub への接続時に、 Certificate verify failed が起きる場合も、
上記の対策でうまくいくようです。