FreeBSDでGeeknoteを使おうとしたらCertificate verify failed…

最近、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 が起きる場合も、
上記の対策でうまくいくようです。

 

 

 

Spread the love
  •  
  •  
  •  

コメント

タイトルとURLをコピーしました