概要
- FacebookInstantGames側から用意したコンテンツ用コールバックページへアクセスさせたい
- しかしアクセスが成功しない
詳細
- 別のサービスの開発環境をコールバックURLに変更してみたら成功
- Facebook側からのアクセスログ
124.35.82.xxx - - [19/Feb/2020:18:49:19 +0900] "GET / HTTP/1.1" 200 4437 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36" "-"
124.35.82.xxx - - [19/Feb/2020:18:49:20 +0900] "GET /favicon.ico HTTP/1.1" 200 0 "https://qa.lqtmgc.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36" "-"
66.220.149.xx - - [19/Feb/2020:18:49:20 +0900] "GET /?hub.mode=subscribe&hub.challenge=1387981818&hub.verify_token=AAA HTTP/1.1" 200 4437 "-" "facebookplatform/1.0 (+http://developers.facebook.com)" "-"
- 無料証明書に差し替える
$ sudo yum install certbot
$ certbot certonly --webroot -w /var/source/document_root -d sub.domain.net
(Enter 'c' to
cancel): e-mail@address.jp
(A)gree/(C)ancel: A
(Y)es/(N)o: N
$ sudo ls -l /etc/letsencrypt/live/sub.domain.net
$ vi /etc/nginx/conf.d/app.conf
server {
:
listen 443 ssl;
server_name sub.domain.net;
ssl_certificate /etc/letsencrypt/live/sub.domain.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/sub.domain.net/privkey.pem;
:
}
$ sudo systemctl restat nginx
- 上記変更をしてFacebook側からのアクセスを再度確認
結論
-
SSL証明書の種類によって処理がうまくいかない
-
AWSのACM発行のワイルドカードSSL証明書かつLoadBalancaerによる証明書実装ではFacebook側からのアクセスは失敗する
-
無料証明書であるLet'sEncryptかつサーバホスト単体によるSSL証明書実装はではFacebook側からのアクセスは成功する
-
AWSではないクラウドでJPRS発行のSSL証明書かつLoadBalancerによる証明書実装ではFacebook側からのアクセスは成功する
-
FacebookInstantGames側のアクセスに対応するSSL証明書と実装に変更する必要がある
-
Facebook側で具体的な条件が開示されていない