InnovateAsteriskBrowser-Phone

2024年6月26日 (水) 17:53時点におけるTakahashi (トーク | 投稿記録)による版 (自己署名の証明書をつくる)

InnovateAsteriskのブラウザフォン。asterisk browser phone等で検索すると上の方に出てくる。プロジェクトとしては比較的新しいがスタックはSIP.JSを使っている模様。

https://www.innovateasterisk.com/browser-phone/
https://github.com/InnovateAsterisk/Browser-Phone

そもそもクラウド上のAsteriskを使うことが前提になっているのでちと設定が厄介だったのでまとめておく。オンプレでも『外』から使うことを前提として解説が書かれているので注意。

目次

自己署名の証明書をつくる

そもそもブラウザと通信するにはSSL/TLSが必要となるので証明書が要ります。
今回はローカル(LAN内)で使うことを前提(要はオンプレPBXの内線)にするので証明書を買わずに自己署名でAsteriskサーバのIPアドレス用の証明書をつくり、Chromeにも入れて使います。

以下のページが参考になります(TNX)

https://qiita.com/t-kuni/items/d3d72f429273cf0ee31e
https://github.com/t-kuni/self-sign-cert


SANの書かれたテキストファイルを用意する

以下のような内容でつくります。IPアドレスは自分の環境にあわせてください。例示では192.168.254.234を使います。

subjectAltName = DNS:192.168.254.234, IP:192.168.254.234

san.txtとか適当な名前で保存しておいてください。本来DNSはドメイン名が入るのですがLAN内なのでIPアドレスを書いています。

秘密鍵をつくる

openssl genrsa 2048 > asterisk.key

秘密鍵からCSRをつくる

住所等は適切な値を設定してください。ローカル環境なのであまり気にする必要もありませんが。

# openssl req -new -key asterisk.key  > asterisk.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JA
State or Province Name (full name) [Some-State]:TOKYO
Locality Name (eg, city) []:ITABASHI
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Asterisk
Organizational Unit Name (eg, section) []:PBX
Common Name (e.g. server FQDN or YOUR name) []:192.168.254.238
Email Address []:メールアドレス

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:チャレンジパスワードを指定
An optional company name []:

CSRを署名してサーバ用の証明書をつくる

上の参考にした例にならって10年(3650日)有効にしていますが、まあそんなもんで大丈夫でしょう。

# openssl x509 -days 3650 -req -extfile san.txt -signkey server.key < asterisk.csr > asterisk.crt

WIP