OpenWrtの証明書を作成する

必須ではないもののOpenWrtのダッシュボードのSSL化に挑戦してみました。お手軽ツールのXCAでルート証明及びサーバ証明書を作ってインストールしてみましたがだめなようです。PCで作った鍵と証明書をダッシュボードのuHTTPdから’Remove configuration for certificate and key’ボタンを押してすでにある証明書&鍵を消してインストールしますscp等使ってインストールします。鍵をDERに変換してないとWWWサーバが死にます。 さらにブラウザから確認してみると証明書は有効だがセキュアじゃないそうです。

インストール

opkg update && opkg install openssl-util luci-app-uhttpd luci-ssl-openssl

失敗例
正しい例

追記:

FreeRadiusで作った証明書をベースに作成してみました。ChromeではだめでしたがFirefoxではうまくいきました。CAがFreeRadiusのままですがこれもテンプレートを使って書き換えれば済みます。でも面倒なのでそのまま使います。CAはブラウザにもインストールしておきました。

openssl rsa -in gateway.luci.openwrt.pem -outform DER -out gateway.luci.openwrt.key
cat gateway.luci.openwrt.crt ca.crt > gateway.luci.openwrt.chain.crt
openssl verify -CAfile ca.crt gateway.luci.openwrt.chain.crt

成功したのでこれをXCAのテンプレートとして再度XCAで作成しました。

Certification Authorityの設定:

countryName: JP
stateOrProvinceName: Somewhere
localityName: Unknown
organizationName: OpenWrt
commonName: OpenWrt Certificate Authority
emailAddress: admin@openwrt
X509v3 Basic Constrains(Critical): Certification Authority
Key identifier: Subject Key Identifier, Authority Key Identifier
X509v3 Key Usage: n/a
X509v3 Extended Key Usage: n/a

Server Certificateの設定:

commonName: gateway.luci.openwrt
X509v3 Basic Constrains(Critical): Not defined
Key identifier: Subject Key Identifier, Authority Key Identifier
X509v3 Subject Alternative Name: DNS:gateway.luci.openwrt, IP:192.168.1.1
X509v3 Key Usage(Critical): Digital Signature, Key Encipherment
X509v3 Extended Key Usage: TLS Web Server Authentication, Tls Web Client Authentication
Chrome
Firefox

参考: