Openwrt は、グラフィカルな方法で設定管理を行うための luci 管理インターフェースを提供しています。luci インターフェースには、lan ネットワークアドレス http を使用してアクセスしますが、安全でないリンクの警告が表示されます。一般的に、ブラウザは警告を無視するためのスキップオプションを提供しています。
ただし、wan ポートアドレスを使用して luci インターフェースにアクセスする場合、新しいバージョンの Chrome では http の安全でないリンクへのアクセスが強制的に拒否されます。ウェブサイトが https アクセスをサポートしていない場合、ページを開くことができなくなり、外部ネットワークから luci インターフェースにアクセスできなくなります。
まず、wan ポートから luci インターフェースにアクセスする場合、ファイアウォールの設定を許可する必要があります。詳細については、https://blog.niekun.net/archives/1818.htmlを参照してください。
次に、luci に SSL 証明書を設定します。これにより、Chrome ブラウザがアクセスを許可します。
まず、関連するプログラムをインストールします:
opkg update && opkg install openssl-util luci-app-uhttpd
上記のコマンドで openssl パッケージと uhttpd の UI 設定インターフェースをインストールします。これにより、uhttpd をグラフィカルな方法で設定できます。
次に、必要な SSL 証明書ファイルを生成します。
まず、etc/ssl/myconfig.conf
というファイルを作成します:
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
string_mask = utf8only
[req_distinguished_name]
C = US
ST = VA
L = SomeCity
O = OpenWrt
OU = Home Router
CN = luci.openwrt
[v3_req]
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = luci.openwrt
IP.1 = 192.168.1.1
C(国)、ST(州)、L(場所)、O(組織)、OU(組織単位)を必要な内容に変更できます。
CN と DNS.1 は同じアドレスである必要があります。これらは証明書が代表するドメイン名を表し、IP と対応しています。luci インターフェースのアドレスのホストを設定した場合、ここで対応するドメイン名を定義できます。その後、このドメイン名を使用して IP にアクセスできます。
IP.1 は luci ウェブアドレスであり、対応するアドレスに設定します。
設定ファイルを保存したら、ssl ディレクトリに戻ります:
cd /etc/ssl
次のコマンドを実行します:
openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout mycert.key -out mycert.crt -config myconfig.conf
これにより、現在のディレクトリに mycert.key と mycert.crt ファイルが自動的に作成されます。
次に、lan 内部ネットワークから luci ウェブインターフェースにアクセスし、トップに services メニューが表示されることがわかります。uhttpd をクリックして設定画面に入り、HTTPS CertificateとHTTPS Private Keyにそれぞれ crt と key ファイルをアップロードします:
その後、save and apply をクリックします。
uhttpd サービスを再起動します:
/etc/init.d/uhttpd restart
この時点で、Chrome を使用して wan ポートアドレスから luci ウェブインターフェースにアクセスすると、証明書に問題があるという警告が表示されますが、リンクを選択して正常に入ることができます。
次に、生成した ssl ファイルをバックアップリストに追加します。デフォルトでは、/etc/config
ディレクトリのファイルは自動的にバックアップされます。
System → Backup/Flash Firmware に移動し、configuration 欄をクリックし、/etc/ssl/mycert.crt
と/etc/ssl/mycert.key
をリストに追加し、save をクリックします。
その後、生成されたバックアップにはこれらのファイルが含まれます。
強制的な https 変換のキャンセル#
デフォルトでは、uhttpd の設定で「すべての HTTP を HTTPS にリダイレクトする」がオンになっています:
この設定では、http ページにアクセスしても自動的に https ページにリダイレクトされます。ローカルでのアクセスには問題ありませんが、テストの結果、frp を使用してローカルネットワークをトンネリングして luci ページに外部からアクセスする場合、無限リダイレクトの警告が表示されます。
私の frp の設定は http から https になっているため、frp がアクセスするのは https ではなくローカルの http サービスです。
解決策は、「すべての HTTP を HTTPS にリダイレクトする」のオプションをオフにし、ルーターを再起動することです。これにより、frp を使用して luci ページに正常にアクセスできるようになります。
https リダイレクトをキャンセルしたくない場合は、frpc の plugin_http2https プラグインを使用してローカルの https を http に変換し、それを frps に転送することもできます。詳細については、https://blog.niekun.net/archives/539.htmlを参照してください。