はじめに
前述の
でキーストア生成もできたことだし、WowzaでWebRTCを試すかーと思って試してみたら映像視聴が行えない。
原因とその調査過程を以下にまとめる。
原因
Let's Encryptで生成した証明書の暗号方式がECDSAになっている。(WowzaがECDSAには対応していない???)
調査
chrome://webrtc-internals/
Chromeの場合は「chrome://webrtc-internals/」でWebRTCの稼働状況を確認できる。
すると"iceconnectionstatechange"が"failed"になっている。
パケットキャプチャ
Wowza側でパケットキャプチャしてみる。(iceconnectionstatechangeがfailedになるタイミングのパケット)
以下は別の環境で視聴が行えている時のパケットと今回視聴が行えない環境でのパケットを比較した結果である。
動作確認できる環境(成功)
今回試した環境(失敗)
Wowza側が"Certificate Unknown"と言っているので、従来の証明書と形式が違う???と推測。
証明書を比較
そこで証明書を見比べてみる。(以下に抜粋したものを貼り付け)
動作確認できる環境
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
RSA。
今回試した環境
Subject Public Key Info:
Public Key Algorithm: id-ecPublicKey
Public-Key: (256 bit)
ECDSA!。
何故このような差が生まれたか
これまでLet's Encryptの証明書を生成するためのcertbotはUbuntuに標準で入っているものを利用していたが、今回はcertbot公式サイトの手順を参照しsnapを利用して生成した。
そこでapt install certbotで標準パッケージを入れなおして生成しなおすと、証明書もRSAになり、WebRTCでの視聴確認が無事行えた。
今回はここまで。以下も気になるところだが、それはまた時間ができた時にでも。
・Wowzaが本当にECDSAに非対応なのか?
・snapで入れたcertbotで暗号アルゴリズムをRSAにする方法は?