LINE BOT APIでリクエストが飛んでこない（SSL関係）

**2016/11/10 追記**
<font color="red">BOT API Trialは廃止となりました。
またMessaging APIに移行し、SSLについての問題はほとんどが解決したと思われますので
もし現時点でSSLを利用できない場合他の原因が考えられます。
https://business.line.me/ja/news/20051494
</font>

# LINE BOT APIで遊びはじめたものの、Callbackに何も来ない問題
原因としては、SSL証明書が関係している模様。
他にも原因はあるかもしれないが、Callbackが飛んでこない場合大体これっぽい。

環境よると思いますが通常のアクセスログすらに残らない等あるので
判断するには色々見てみる必要があると思います。
自分で試したApache+mod_ssl環境ではアクセスログ等には残りませんでした。
接続時のネゴシエーション関係のログが取れれば、見れるとかなんとか。

また、一度も成功しないうちに次々と違う証明書を試している例もあり
反映されていない段階で使えないと判断しているケースも有ると思うので
基本的に、使える方が有る程度信用出来る物で、
使えない方は「そういうケースもある」程度で参考にしてください。

Callback（とWhitelist）は反映まで時間かかると思ったほうが良いです。
自分の環境では最初使える証明書を適用したサーバーに切り替えるのに半日くらいかかりましたが
今は変更すると数分で反映されます。
時間帯や、最初の反映等で色々有ると思う。

# 現在の状況
各所を見て、使える使えないを見てきました。
もちろんウワサなので、信じるかはアナタ次第です。
また、公式発表あるまで、修正や追加していきたいです。

現状、無料がダメっぽいけど単純にどういう基準なのかまだ分からない。
LINE側の環境によるものなのか、制限をかけているのか…
どちらにせよ、認証局の差による物だと思われる。

**2016/04/22 追記**
CA Listと備考が追記されていました。
これから使える証明書を探してみてください。
一応、「Let’s Encrypt」「StartSSL」も追加したとお知らせがありますがまだ微妙です。
>Note: The SSL certificate must be issued by an authorized CA ( see authorized CA list). If a self-issued SSL certificate is applied to your server, requests sent from the LINE platform will fail.
>https://developers.line.me/wp-content/uploads/2016/04/ca_root.txt

4/22時点では[クロスルート証明書のDST](https://letsencrypt.org/2015/06/04/isrg-ca-certs.html)が追記されていないため、「Let’s Encrypt」は使えないようです。
ここが一番大事なのになぁ…。というか一般的に使うためのDSTだったのに逆転現象になってしまっているとは。

>http://jxck.hatenablog.com/entry/letsencrypt-acme
>IdenTrust という多くの環境で信用されている別の CA とチェーンを結ぶようになりました。 これにより Let's Encrypt の証明書は「クロスルート証明書」となり、 IdenTrust を信用する環境で信用されるようになりました。

**2016/04/23 追記**
「Let’s Encrypt」が使えるとの事で、
これでSSLで足踏みしていた方も、始める事ができそうですね。


## 使える
- Let's Encrypt
- WoSign（無料）
- StartSSL(まだ実際の報告は無し)
- RapidSSL（上位のGeoTrustも使えると思う）
- [Comodo](http://qiita.com/git6_com/items/008404506836011af33b#comment-91218ad9435cb1940fa9) / [EcoCert](http://qiita.com/git6_com/items/008404506836011af33b#comment-ba7fceafe15e15ea07b7)→Trialでもいけるらしいよ（※3）
- [共有サーバーの共有SSL](http://qiita.com/Coichiro/items/d796b13f275f341161c7)（※1）
- [CloudFront+AWS](http://qiita.com/wanko/items/35f3b0aeb3bb726f591d)
- [GoogleAppsEngine](http://qiita.com/koki_cheese/items/6c55a7c6f090e87c7b3c)
- [Heroku](http://qiita.com/qckanemoto/items/7c148fcc595cec4aa59a)
- [AppHarbor](http://qiita.com/git6_com/items/008404506836011af33b#comment-f51e6cc77ee03e4de099)（提供SSL:DigiCert）
- [Windows Azure](http://qiita.com/git6_com/items/008404506836011af33b#comment-fb911a48d2458a75da94)

## 使えへん
- 自己署名証明書
- [Symantec](http://qiita.com/git6_com/items/008404506836011af33b#comment-d6e9907885acb4117d4)（※2）

## いける、いけないの両方いる
- CloudFlare
- GlobalSign 45日テスト用証明書

**※ SSL発行元や開発環境で記載しています。**

# 補足
※１：もちろん発行元によるが、大抵の所は大丈夫だとは思う。
しかし、[他投稿にて同じドメインの場合動作しない](http://qiita.com/betchi/items/8e5417dbf20a62f2239d#comment-2783fa730642f6a6089c)とかなんとか。一応使えるようにはなったらしい。

※2:他の証明書から見てもこれは異例だと思う。
Symantecは入っていないが、上位のVeriSignはかなりの数が記載されている。
シマンテック公式サイト自体の証明書でもBOTAPIは使えないんじゃないかなぁ…。

※3:多分CoreSSL、SecureCoreもいける

# 誰か使ってたら情報下さい
- 無料SSLを提供している所の有料プラン(WoSignとか)
- お高いSSL（DigiCert/SureServer、VeriSign、GlobalSignとか）
- マイナー系SSL（特定の国で販売してるとか、主要なブラウザにすら入ってない奴とか）

# 以下、気になるツイート
<blockquote class="twitter-tweet" data-partner="tweetdeck"><p lang="ja" dir="ltr">ちなみにLine Bot動くのを試したかっただけなのでherokuもawsも使ってません。ローカルでnode+express走らせて、localtunnelってサービスで3000ポートを外部に公開しただけ。勝手にSSLになるし楽だった</p>&mdash; ふじっきー (@fujikky) <a href="https://twitter.com/fujikky/status/718661563834437632">April 9, 2016</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>