閉じる

libcurlで https通信時の証明書

libgcalを Windowsで使ったり相当品を作ったりしたとき、https通信を行う必要があるのだけど Windows版の libcurlには必要な証明書が含まれていないために CURLE_SSL_CACERT(=60)で失敗してしまう。
当初は「curl_easy_setopt(m_Curl,CURLOPT_SSL_VERIFYPEER,FALSE);」なんて事をやって逃げていた。
やはりそういう逃げは駄目だろうと正攻法を探した。
すぐに見つかるのは「curl-ca-bundle.crt」をカレントディレクトリの類におくという方法だけど、これは curl.exeに証明書ファイルを指定する方法なので今回は使えない。
正解は curl_easy_setopt(m_Curl,CURLOPT_CAINFO,”c:\\cacert.pem”);ってな感じ。
ただ、cacert.pemをどう調達するのかがよくわからない。
「http://curl.haxx.se/ca/cacert.pemをダウンロード」なんてお手軽な方法で本当に良いのか???
Slackwareに含まれている「/usr/share/curl/ca-bundle.crt*1 」でも大丈夫*2 で、こいつなら信用できるかなぁ?


*1 こいつは Mozillaソースに含まれている「mozilla/security/nss/lib/ckfw/builtins/certdata.txt」が元らしい

*2 今回は Googleカレンダーでの使用なので www.google.comが通れば OK

コメントを残す

メールアドレスが公開されることはありません。必須項目には印がついています *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)