firefox : Error Code: NS_ERROR_DOM_MEDIA_METADATA_ERR 0x806e0006

這幾次試著用 PHP 去產生 Video streaming
中間遇到了 CORS 等等的問題
其中最機歪的是
我的 video 連結是 https://xxxxx.com/serial_number/1234
這樣在 chrome 不管是 直接貼到網址 OR 當做 video 的 src 都是可以播的
但是在 firefox
直接在網址可以播 但是在做 video 的 src 就會出
Error Code: NS_ERROR_DOM_MEDIA_METADATA_ERR 0x806e0006
這個錯誤 ~~ 搞超久, ffmpeg 看 video info 也沒什麼奇怪的地方
response header 也想辦法弄到和 原檔的 mp4 一模一樣 就是都會出現上述的錯誤
結果死馬當活馬醫 ~~ 試試在 video src 的 最後加上個 xxx.mp4 像是
https://xxxxx.com/serial_number/1234/xxx.mp4
結果在 video src 裡面就可以播放了…………..
恭喜 ~~~ 0 分 XD

SSL 憑證安裝

今天在安裝 images.abic.com.tw 的憑證的時候
發現在 mobile 的 chrome 上都會發生錯誤…
檢查了一下發現是 SSL Certificate Chain 的問題, 因為我在 server 只上了自已 domain 的憑證
沒把 Intermediate certificate 加上去造成的

Creating a .pem with the Entire SSL Certificate Trust Chain

  1. Log into your DigiCert Management Console and download your Intermediate (DigiCertCA.crt), Root (TrustedRoot.crt), and Primary Certificates (your_domain_name.crt).
  2. Open a text editor (such as wordpad) and paste the entire body of each certificate into one text file in the following order:
    1. The Primary Certificate – your_domain_name.crt
    2. The Intermediate Certificate – DigiCertCA.crt
    3. The Root Certificate – TrustedRoot.crt

    Make sure to include the beginning and end tags on each certificate. The result should look like this:

    —–BEGIN CERTIFICATE—–
    (Your Primary SSL certificate: your_domain_name.crt)
    —–END CERTIFICATE—–
    —–BEGIN CERTIFICATE—–
    (Your Intermediate certificate: DigiCertCA.crt)
    —–END CERTIFICATE—–
    —–BEGIN CERTIFICATE—–
    (Your Root certificate: TrustedRoot.crt)
    —–END CERTIFICATE—–

    Save the combined file as your_domain_name.pem. The .pem file is now ready to use.

上述紅色的部份就是我們完整的 SSL Certificate

檢查 ssl Certificate 的工具
https://cryptoreport.rapidssl.com/checker/views/certCheck.jsp

參考資料
https://www.digicert.com/ssl-support/pem-ssl-creation.htm
https://www.linode.com/docs/platform/nodebalancer/nodebalancer-ssl-configuration

svn server behind haproxy

因為 IP 不夠多的因素
所以把大部份服務都透過 haproxy 來做 NAT 的功能 ( 因為想要使用 haproxy L7 的功能 )
而 svn server 因為轉換後一直發生斷線問題
解法很簡單就是 “keep-alive”

移除 “option httpclose”.
加上 “option http-keep-alive” & option prefer-last-server

ref.
http://comments.gmane.org/gmane.comp.web.haproxy/20796

HTTP/2 On FreeBSD

    1. echo “WITH_OPENSSL_PORT=yes” >> /etc/make.conf
    2. cd /usr/ports/security/openssl ; make install clean
    3. cd /usr/ports/devel/apr1; make install clean
    4. cd /usr/ports/www/apache24; make install clean
    5. vim /usr/local/etc/apache24/httpd.conf
      #LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so
      #LoadModule http2_module libexec/apache24/mod_http2.so
      #LoadModule ssl_module libexec/apache24/mod_ssl.so
      ↓
      LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so
      LoadModule http2_module libexec/apache24/mod_http2.so
      LoadModule ssl_module libexec/apache24/mod_ssl.so
    6. vim /usr/local/etc/apache24/extra/httpd-ssl.conf
      SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4
      ↓
      SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK
      SSLProtocol all -SSLv3
      ↓
      SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2
      <VirtualHost _default_:443>
      Protocols h2 http/1.1

Ref.
1. https://blog.apar.jp/linux/3484/
2. https://forums.freebsd.org/threads/apache-will-not-start-with-openssl-from-ports.38454/
3. https://icing.github.io/mod_h2/howto.html

Error: Could not complete SSL handshake.

執行 /usr/local/libexec/nagios/check_nrpe2 -H ip -c check_xxx
發生 /usr/local/libexec/nagios/check_nrpe2 -H 192.168.x.xxx -c check_disk_root
錯誤時
請去檢查 nrpe client
ps -axuw | egrep -i ‘nrpe’
是不是沒有 -n 的參數 例如 /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -d
若沒有 -n
CentOS 請去 /etc/sysconfig/nrpe 加入
# specify additional command line arguments for nrpe
NRPE_SSL_OPT=”-n”

ps:
rpmforge 裝的 nrpe 會是 nagios-nrpe
這個版本不會吃 /etc/sysconfig/nrpe
請裝 epel 的版本
因為這個問題我浪費了一個小時去查…..Fuxk

中國 Android Market

http://www.zhihu.com/question/19653774
http://lefen.lenovo.com/lfb/forum.php?mod=viewthread&tid=33667
http://pad.pconline.com.cn/321/3217676_all.html
http://www.sojump.com/report/1988598.aspx?arc=10000%2C1
抓貓網

Waiting For Review

Waiting For Review……終於呀..

第一個App 終於送審了….
這一次用 phonegap 做第一個 iOS App 遭遇到了滿多問題的….有機會的話會再整理一下這次踩到的屎們 XD

iOS Playing Audio In background

1.
在 Info.plist加上 “Required background modes” ( array )
Key => Item 0, Value => App plays audio

2.
在 AppDelegate.h 加上
#import <AVFoundation/AVFoundation.h>

3.
在 – (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
加上
/* Playing music in background START */

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
BOOL ok;
NSError *setCategoryError = nil;
ok = [audioSession setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError];

/* Playing music in background END */

這樣就可以了…

ref.
http://stackoverflow.com/questions/12770487/html-5-audio-mp3-file-not-playing-back-when-iphone-locked-using-phonegap-2-1-0-a

error 0無法連接 iTunes Store ( In-App Purchase )

最近在實作 In-App Purchase
在 iPhone 上測試的時後一直吃到屎….
不斷出現…”error 0 無法連接 iTunes Store”的錯誤.
搞了一兩天…..
最後google了一堆大家的問題
有的說要先上傳 Binary 然後 Reject 才會測通..
也照幹了…
還是失敗…
後來把整個 product 砍掉, 再重建新的…
test user 也重新建…
結果在萬念俱灰的情況下….
他通了……他通了……他通了……他通了……他通了……他通了……他通了……
這篇單純是筆紀一下…

1. 可能要先上傳 Binary ( 近期會再用另一個 Apple id 來建新 App 就可以知道拔獅子的鬃毛會不會長頭髮出來了 )
2. Versions Status : Developer Rejected
3. 在 App details 中的 In-App Purchase 未將Product 加入.
4. 做完這些後重新建一個 test user